import subprocess
import sys


def test_condefects_0():
    proc = subprocess.run(
        [sys.executable, "buggy.py"],
        input='5\n4\nabac\n3\ncac\n2\nab\n12\nabababababab\n5\nedcba\n',
        capture_output=True,
        text=True,
        timeout=10,
    )
    expected = 'Yes\nNo\nYes\nYes\nNo\n'
    actual = proc.stdout.strip()
    assert actual == expected.strip(), (
        f"Expected {expected.strip()!r}, got {actual!r}"
    )


def test_condefects_1():
    proc = subprocess.run(
        [sys.executable, "buggy.py"],
        input='287\n2\naa\n2\nab\n2\nba\n2\nbb\n3\naaa\n3\naab\n3\naac\n3\naba\n3\nabb\n3\nabc\n3\naca\n3\nacb\n3\nacc\n3\nbaa\n3\nbab\n3\nbac\n3\nbba\n3\nbbb\n3\nbbc\n3\nbca\n3\nbcb\n3\nbcc\n3\ncaa\n3\ncab\n3\ncac\n3\ncba\n3\ncbb\n3\ncbc\n3\ncca\n3\nccb\n3\nccc\n4\naaaa\n4\naaab\n4\naaac\n4\naaad\n4\naaba\n4\naabb\n4\naabc\n4\naabd\n4\naaca\n4\naacb\n4\naacc\n4\naacd\n4\naada\n4\naadb\n4\naadc\n4\naadd\n4\nabaa\n4\nabab\n4\nabac\n4\nabad\n4\nabba\n4\nabbb\n4\nabbc\n4\nabbd\n4\nabca\n4\nabcb\n4\nabcc\n4\nabcd\n4\nabda\n4\nabdb\n4\nabdc\n4\nabdd\n4\nacaa\n4\nacab\n4\nacac\n4\nacad\n4\nacba\n4\nacbb\n4\nacbc\n4\nacbd\n4\nacca\n4\naccb\n4\naccc\n4\naccd\n4\nacda\n4\nacdb\n4\nacdc\n4\nacdd\n4\nadaa\n4\nadab\n4\nadac\n4\nadad\n4\nadba\n4\nadbb\n4\nadbc\n4\nadbd\n4\nadca\n4\nadcb\n4\nadcc\n4\nadcd\n4\nadda\n4\naddb\n4\naddc\n4\naddd\n4\nbaaa\n4\nbaab\n4\nbaac\n4\nbaad\n4\nbaba\n4\nbabb\n4\nbabc\n4\nbabd\n4\nbaca\n4\nbacb\n4\nbacc\n4\nbacd\n4\nbada\n4\nbadb\n4\nbadc\n4\nbadd\n4\nbbaa\n4\nbbab\n4\nbbac\n4\nbbad\n4\nbbba\n4\nbbbb\n4\nbbbc\n4\nbbbd\n4\nbbca\n4\nbbcb\n4\nbbcc\n4\nbbcd\n4\nbbda\n4\nbbdb\n4\nbbdc\n4\nbbdd\n4\nbcaa\n4\nbcab\n4\nbcac\n4\nbcad\n4\nbcba\n4\nbcbb\n4\nbcbc\n4\nbcbd\n4\nbcca\n4\nbccb\n4\nbccc\n4\nbccd\n4\nbcda\n4\nbcdb\n4\nbcdc\n4\nbcdd\n4\nbdaa\n4\nbdab\n4\nbdac\n4\nbdad\n4\nbdba\n4\nbdbb\n4\nbdbc\n4\nbdbd\n4\nbdca\n4\nbdcb\n4\nbdcc\n4\nbdcd\n4\nbdda\n4\nbddb\n4\nbddc\n4\nbddd\n4\ncaaa\n4\ncaab\n4\ncaac\n4\ncaad\n4\ncaba\n4\ncabb\n4\ncabc\n4\ncabd\n4\ncaca\n4\ncacb\n4\ncacc\n4\ncacd\n4\ncada\n4\ncadb\n4\ncadc\n4\ncadd\n4\ncbaa\n4\ncbab\n4\ncbac\n4\ncbad\n4\ncbba\n4\ncbbb\n4\ncbbc\n4\ncbbd\n4\ncbca\n4\ncbcb\n4\ncbcc\n4\ncbcd\n4\ncbda\n4\ncbdb\n4\ncbdc\n4\ncbdd\n4\nccaa\n4\nccab\n4\nccac\n4\nccad\n4\nccba\n4\nccbb\n4\nccbc\n4\nccbd\n4\nccca\n4\ncccb\n4\ncccc\n4\ncccd\n4\nccda\n4\nccdb\n4\nccdc\n4\nccdd\n4\ncdaa\n4\ncdab\n4\ncdac\n4\ncdad\n4\ncdba\n4\ncdbb\n4\ncdbc\n4\ncdbd\n4\ncdca\n4\ncdcb\n4\ncdcc\n4\ncdcd\n4\ncdda\n4\ncddb\n4\ncddc\n4\ncddd\n4\ndaaa\n4\ndaab\n4\ndaac\n4\ndaad\n4\ndaba\n4\ndabb\n4\ndabc\n4\ndabd\n4\ndaca\n4\ndacb\n4\ndacc\n4\ndacd\n4\ndada\n4\ndadb\n4\ndadc\n4\ndadd\n4\ndbaa\n4\ndbab\n4\ndbac\n4\ndbad\n4\ndbba\n4\ndbbb\n4\ndbbc\n4\ndbbd\n4\ndbca\n4\ndbcb\n4\ndbcc\n4\ndbcd\n4\ndbda\n4\ndbdb\n4\ndbdc\n4\ndbdd\n4\ndcaa\n4\ndcab\n4\ndcac\n4\ndcad\n4\ndcba\n4\ndcbb\n4\ndcbc\n4\ndcbd\n4\ndcca\n4\ndccb\n4\ndccc\n4\ndccd\n4\ndcda\n4\ndcdb\n4\ndcdc\n4\ndcdd\n4\nddaa\n4\nddab\n4\nddac\n4\nddad\n4\nddba\n4\nddbb\n4\nddbc\n4\nddbd\n4\nddca\n4\nddcb\n4\nddcc\n4\nddcd\n4\nddda\n4\ndddb\n4\ndddc\n4\ndddd\n',
        capture_output=True,
        text=True,
        timeout=10,
    )
    expected = 'No\nYes\nNo\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nNo\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nNo\nNo\nNo\nNo\nNo\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nNo\nNo\nYes\nYes\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nNo\nNo\nNo\nYes\nNo\nNo\nNo\nYes\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nNo\nNo\nNo\nYes\nNo\nNo\nNo\nYes\nNo\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nYes\nYes\nYes\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nYes\nYes\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\n'
    actual = proc.stdout.strip()
    assert actual == expected.strip(), (
        f"Expected {expected.strip()!r}, got {actual!r}"
    )


def test_condefects_2():
    proc = subprocess.run(
        [sys.executable, "buggy.py"],
        input='400\n5\naaaaa\n5\naaaab\n5\naaaac\n5\naaaad\n5\naaaae\n5\naaaba\n5\naaabb\n5\naaabc\n5\naaabd\n5\naaabe\n5\naaaca\n5\naaacb\n5\naaacc\n5\naaacd\n5\naaace\n5\naaada\n5\naaadb\n5\naaadc\n5\naaadd\n5\naaade\n5\naaaea\n5\naaaeb\n5\naaaec\n5\naaaed\n5\naaaee\n5\naabaa\n5\naabab\n5\naabac\n5\naabad\n5\naabae\n5\naabba\n5\naabbb\n5\naabbc\n5\naabbd\n5\naabbe\n5\naabca\n5\naabcb\n5\naabcc\n5\naabcd\n5\naabce\n5\naabda\n5\naabdb\n5\naabdc\n5\naabdd\n5\naabde\n5\naabea\n5\naabeb\n5\naabec\n5\naabed\n5\naabee\n5\naacaa\n5\naacab\n5\naacac\n5\naacad\n5\naacae\n5\naacba\n5\naacbb\n5\naacbc\n5\naacbd\n5\naacbe\n5\naacca\n5\naaccb\n5\naaccc\n5\naaccd\n5\naacce\n5\naacda\n5\naacdb\n5\naacdc\n5\naacdd\n5\naacde\n5\naacea\n5\naaceb\n5\naacec\n5\naaced\n5\naacee\n5\naadaa\n5\naadab\n5\naadac\n5\naadad\n5\naadae\n5\naadba\n5\naadbb\n5\naadbc\n5\naadbd\n5\naadbe\n5\naadca\n5\naadcb\n5\naadcc\n5\naadcd\n5\naadce\n5\naadda\n5\naaddb\n5\naaddc\n5\naaddd\n5\naadde\n5\naadea\n5\naadeb\n5\naadec\n5\naaded\n5\naadee\n5\naaeaa\n5\naaeab\n5\naaeac\n5\naaead\n5\naaeae\n5\naaeba\n5\naaebb\n5\naaebc\n5\naaebd\n5\naaebe\n5\naaeca\n5\naaecb\n5\naaecc\n5\naaecd\n5\naaece\n5\naaeda\n5\naaedb\n5\naaedc\n5\naaedd\n5\naaede\n5\naaeea\n5\naaeeb\n5\naaeec\n5\naaeed\n5\naaeee\n5\nabaaa\n5\nabaab\n5\nabaac\n5\nabaad\n5\nabaae\n5\nababa\n5\nababb\n5\nababc\n5\nababd\n5\nababe\n5\nabaca\n5\nabacb\n5\nabacc\n5\nabacd\n5\nabace\n5\nabada\n5\nabadb\n5\nabadc\n5\nabadd\n5\nabade\n5\nabaea\n5\nabaeb\n5\nabaec\n5\nabaed\n5\nabaee\n5\nabbaa\n5\nabbab\n5\nabbac\n5\nabbad\n5\nabbae\n5\nabbba\n5\nabbbb\n5\nabbbc\n5\nabbbd\n5\nabbbe\n5\nabbca\n5\nabbcb\n5\nabbcc\n5\nabbcd\n5\nabbce\n5\nabbda\n5\nabbdb\n5\nabbdc\n5\nabbdd\n5\nabbde\n5\nabbea\n5\nabbeb\n5\nabbec\n5\nabbed\n5\nabbee\n5\nabcaa\n5\nabcab\n5\nabcac\n5\nabcad\n5\nabcae\n5\nabcba\n5\nabcbb\n5\nabcbc\n5\nabcbd\n5\nabcbe\n5\nabcca\n5\nabccb\n5\nabccc\n5\nabccd\n5\nabcce\n5\nabcda\n5\nabcdb\n5\nabcdc\n5\nabcdd\n5\nabcde\n5\nabcea\n5\nabceb\n5\nabcec\n5\nabced\n5\nabcee\n5\nabdaa\n5\nabdab\n5\nabdac\n5\nabdad\n5\nabdae\n5\nabdba\n5\nabdbb\n5\nabdbc\n5\nabdbd\n5\nabdbe\n5\nabdca\n5\nabdcb\n5\nabdcc\n5\nabdcd\n5\nabdce\n5\nabdda\n5\nabddb\n5\nabddc\n5\nabddd\n5\nabdde\n5\nabdea\n5\nabdeb\n5\nabdec\n5\nabded\n5\nabdee\n5\nabeaa\n5\nabeab\n5\nabeac\n5\nabead\n5\nabeae\n5\nabeba\n5\nabebb\n5\nabebc\n5\nabebd\n5\nabebe\n5\nabeca\n5\nabecb\n5\nabecc\n5\nabecd\n5\nabece\n5\nabeda\n5\nabedb\n5\nabedc\n5\nabedd\n5\nabede\n5\nabeea\n5\nabeeb\n5\nabeec\n5\nabeed\n5\nabeee\n5\nacaaa\n5\nacaab\n5\nacaac\n5\nacaad\n5\nacaae\n5\nacaba\n5\nacabb\n5\nacabc\n5\nacabd\n5\nacabe\n5\nacaca\n5\nacacb\n5\nacacc\n5\nacacd\n5\nacace\n5\nacada\n5\nacadb\n5\nacadc\n5\nacadd\n5\nacade\n5\nacaea\n5\nacaeb\n5\nacaec\n5\nacaed\n5\nacaee\n5\nacbaa\n5\nacbab\n5\nacbac\n5\nacbad\n5\nacbae\n5\nacbba\n5\nacbbb\n5\nacbbc\n5\nacbbd\n5\nacbbe\n5\nacbca\n5\nacbcb\n5\nacbcc\n5\nacbcd\n5\nacbce\n5\nacbda\n5\nacbdb\n5\nacbdc\n5\nacbdd\n5\nacbde\n5\nacbea\n5\nacbeb\n5\nacbec\n5\nacbed\n5\nacbee\n5\naccaa\n5\naccab\n5\naccac\n5\naccad\n5\naccae\n5\naccba\n5\naccbb\n5\naccbc\n5\naccbd\n5\naccbe\n5\naccca\n5\nacccb\n5\nacccc\n5\nacccd\n5\naccce\n5\naccda\n5\naccdb\n5\naccdc\n5\naccdd\n5\naccde\n5\naccea\n5\nacceb\n5\naccec\n5\nacced\n5\naccee\n5\nacdaa\n5\nacdab\n5\nacdac\n5\nacdad\n5\nacdae\n5\nacdba\n5\nacdbb\n5\nacdbc\n5\nacdbd\n5\nacdbe\n5\nacdca\n5\nacdcb\n5\nacdcc\n5\nacdcd\n5\nacdce\n5\nacdda\n5\nacddb\n5\nacddc\n5\nacddd\n5\nacdde\n5\nacdea\n5\nacdeb\n5\nacdec\n5\nacded\n5\nacdee\n5\naceaa\n5\naceab\n5\naceac\n5\nacead\n5\naceae\n5\naceba\n5\nacebb\n5\nacebc\n5\nacebd\n5\nacebe\n5\naceca\n5\nacecb\n5\nacecc\n5\nacecd\n5\nacece\n5\naceda\n5\nacedb\n5\nacedc\n5\nacedd\n5\nacede\n5\naceea\n5\naceeb\n5\naceec\n5\naceed\n5\naceee\n5\nadaaa\n5\nadaab\n5\nadaac\n5\nadaad\n5\nadaae\n5\nadaba\n5\nadabb\n5\nadabc\n5\nadabd\n5\nadabe\n5\nadaca\n5\nadacb\n5\nadacc\n5\nadacd\n5\nadace\n5\nadada\n5\nadadb\n5\nadadc\n5\nadadd\n5\nadade\n5\nadaea\n5\nadaeb\n5\nadaec\n5\nadaed\n5\nadaee\n',
        capture_output=True,
        text=True,
        timeout=10,
    )
    expected = 'Yes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\n'
    actual = proc.stdout.strip()
    assert actual == expected.strip(), (
        f"Expected {expected.strip()!r}, got {actual!r}"
    )


def test_condefects_3():
    proc = subprocess.run(
        [sys.executable, "buggy.py"],
        input='400\n5\nadbaa\n5\nadbab\n5\nadbac\n5\nadbad\n5\nadbae\n5\nadbba\n5\nadbbb\n5\nadbbc\n5\nadbbd\n5\nadbbe\n5\nadbca\n5\nadbcb\n5\nadbcc\n5\nadbcd\n5\nadbce\n5\nadbda\n5\nadbdb\n5\nadbdc\n5\nadbdd\n5\nadbde\n5\nadbea\n5\nadbeb\n5\nadbec\n5\nadbed\n5\nadbee\n5\nadcaa\n5\nadcab\n5\nadcac\n5\nadcad\n5\nadcae\n5\nadcba\n5\nadcbb\n5\nadcbc\n5\nadcbd\n5\nadcbe\n5\nadcca\n5\nadccb\n5\nadccc\n5\nadccd\n5\nadcce\n5\nadcda\n5\nadcdb\n5\nadcdc\n5\nadcdd\n5\nadcde\n5\nadcea\n5\nadceb\n5\nadcec\n5\nadced\n5\nadcee\n5\naddaa\n5\naddab\n5\naddac\n5\naddad\n5\naddae\n5\naddba\n5\naddbb\n5\naddbc\n5\naddbd\n5\naddbe\n5\naddca\n5\naddcb\n5\naddcc\n5\naddcd\n5\naddce\n5\naddda\n5\nadddb\n5\nadddc\n5\nadddd\n5\naddde\n5\naddea\n5\naddeb\n5\naddec\n5\nadded\n5\naddee\n5\nadeaa\n5\nadeab\n5\nadeac\n5\nadead\n5\nadeae\n5\nadeba\n5\nadebb\n5\nadebc\n5\nadebd\n5\nadebe\n5\nadeca\n5\nadecb\n5\nadecc\n5\nadecd\n5\nadece\n5\nadeda\n5\nadedb\n5\nadedc\n5\nadedd\n5\nadede\n5\nadeea\n5\nadeeb\n5\nadeec\n5\nadeed\n5\nadeee\n5\naeaaa\n5\naeaab\n5\naeaac\n5\naeaad\n5\naeaae\n5\naeaba\n5\naeabb\n5\naeabc\n5\naeabd\n5\naeabe\n5\naeaca\n5\naeacb\n5\naeacc\n5\naeacd\n5\naeace\n5\naeada\n5\naeadb\n5\naeadc\n5\naeadd\n5\naeade\n5\naeaea\n5\naeaeb\n5\naeaec\n5\naeaed\n5\naeaee\n5\naebaa\n5\naebab\n5\naebac\n5\naebad\n5\naebae\n5\naebba\n5\naebbb\n5\naebbc\n5\naebbd\n5\naebbe\n5\naebca\n5\naebcb\n5\naebcc\n5\naebcd\n5\naebce\n5\naebda\n5\naebdb\n5\naebdc\n5\naebdd\n5\naebde\n5\naebea\n5\naebeb\n5\naebec\n5\naebed\n5\naebee\n5\naecaa\n5\naecab\n5\naecac\n5\naecad\n5\naecae\n5\naecba\n5\naecbb\n5\naecbc\n5\naecbd\n5\naecbe\n5\naecca\n5\naeccb\n5\naeccc\n5\naeccd\n5\naecce\n5\naecda\n5\naecdb\n5\naecdc\n5\naecdd\n5\naecde\n5\naecea\n5\naeceb\n5\naecec\n5\naeced\n5\naecee\n5\naedaa\n5\naedab\n5\naedac\n5\naedad\n5\naedae\n5\naedba\n5\naedbb\n5\naedbc\n5\naedbd\n5\naedbe\n5\naedca\n5\naedcb\n5\naedcc\n5\naedcd\n5\naedce\n5\naedda\n5\naeddb\n5\naeddc\n5\naeddd\n5\naedde\n5\naedea\n5\naedeb\n5\naedec\n5\naeded\n5\naedee\n5\naeeaa\n5\naeeab\n5\naeeac\n5\naeead\n5\naeeae\n5\naeeba\n5\naeebb\n5\naeebc\n5\naeebd\n5\naeebe\n5\naeeca\n5\naeecb\n5\naeecc\n5\naeecd\n5\naeece\n5\naeeda\n5\naeedb\n5\naeedc\n5\naeedd\n5\naeede\n5\naeeea\n5\naeeeb\n5\naeeec\n5\naeeed\n5\naeeee\n5\nbaaaa\n5\nbaaab\n5\nbaaac\n5\nbaaad\n5\nbaaae\n5\nbaaba\n5\nbaabb\n5\nbaabc\n5\nbaabd\n5\nbaabe\n5\nbaaca\n5\nbaacb\n5\nbaacc\n5\nbaacd\n5\nbaace\n5\nbaada\n5\nbaadb\n5\nbaadc\n5\nbaadd\n5\nbaade\n5\nbaaea\n5\nbaaeb\n5\nbaaec\n5\nbaaed\n5\nbaaee\n5\nbabaa\n5\nbabab\n5\nbabac\n5\nbabad\n5\nbabae\n5\nbabba\n5\nbabbb\n5\nbabbc\n5\nbabbd\n5\nbabbe\n5\nbabca\n5\nbabcb\n5\nbabcc\n5\nbabcd\n5\nbabce\n5\nbabda\n5\nbabdb\n5\nbabdc\n5\nbabdd\n5\nbabde\n5\nbabea\n5\nbabeb\n5\nbabec\n5\nbabed\n5\nbabee\n5\nbacaa\n5\nbacab\n5\nbacac\n5\nbacad\n5\nbacae\n5\nbacba\n5\nbacbb\n5\nbacbc\n5\nbacbd\n5\nbacbe\n5\nbacca\n5\nbaccb\n5\nbaccc\n5\nbaccd\n5\nbacce\n5\nbacda\n5\nbacdb\n5\nbacdc\n5\nbacdd\n5\nbacde\n5\nbacea\n5\nbaceb\n5\nbacec\n5\nbaced\n5\nbacee\n5\nbadaa\n5\nbadab\n5\nbadac\n5\nbadad\n5\nbadae\n5\nbadba\n5\nbadbb\n5\nbadbc\n5\nbadbd\n5\nbadbe\n5\nbadca\n5\nbadcb\n5\nbadcc\n5\nbadcd\n5\nbadce\n5\nbadda\n5\nbaddb\n5\nbaddc\n5\nbaddd\n5\nbadde\n5\nbadea\n5\nbadeb\n5\nbadec\n5\nbaded\n5\nbadee\n5\nbaeaa\n5\nbaeab\n5\nbaeac\n5\nbaead\n5\nbaeae\n5\nbaeba\n5\nbaebb\n5\nbaebc\n5\nbaebd\n5\nbaebe\n5\nbaeca\n5\nbaecb\n5\nbaecc\n5\nbaecd\n5\nbaece\n5\nbaeda\n5\nbaedb\n5\nbaedc\n5\nbaedd\n5\nbaede\n5\nbaeea\n5\nbaeeb\n5\nbaeec\n5\nbaeed\n5\nbaeee\n5\nbbaaa\n5\nbbaab\n5\nbbaac\n5\nbbaad\n5\nbbaae\n5\nbbaba\n5\nbbabb\n5\nbbabc\n5\nbbabd\n5\nbbabe\n5\nbbaca\n5\nbbacb\n5\nbbacc\n5\nbbacd\n5\nbbace\n5\nbbada\n5\nbbadb\n5\nbbadc\n5\nbbadd\n5\nbbade\n5\nbbaea\n5\nbbaeb\n5\nbbaec\n5\nbbaed\n5\nbbaee\n5\nbbbaa\n5\nbbbab\n5\nbbbac\n5\nbbbad\n5\nbbbae\n5\nbbbba\n5\nbbbbb\n5\nbbbbc\n5\nbbbbd\n5\nbbbbe\n5\nbbbca\n5\nbbbcb\n5\nbbbcc\n5\nbbbcd\n5\nbbbce\n5\nbbbda\n5\nbbbdb\n5\nbbbdc\n5\nbbbdd\n5\nbbbde\n5\nbbbea\n5\nbbbeb\n5\nbbbec\n5\nbbbed\n5\nbbbee\n',
        capture_output=True,
        text=True,
        timeout=10,
    )
    expected = 'Yes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nNo\nNo\nYes\nYes\nYes\nNo\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\n'
    actual = proc.stdout.strip()
    assert actual == expected.strip(), (
        f"Expected {expected.strip()!r}, got {actual!r}"
    )


def test_condefects_4():
    proc = subprocess.run(
        [sys.executable, "buggy.py"],
        input='400\n5\nbbcaa\n5\nbbcab\n5\nbbcac\n5\nbbcad\n5\nbbcae\n5\nbbcba\n5\nbbcbb\n5\nbbcbc\n5\nbbcbd\n5\nbbcbe\n5\nbbcca\n5\nbbccb\n5\nbbccc\n5\nbbccd\n5\nbbcce\n5\nbbcda\n5\nbbcdb\n5\nbbcdc\n5\nbbcdd\n5\nbbcde\n5\nbbcea\n5\nbbceb\n5\nbbcec\n5\nbbced\n5\nbbcee\n5\nbbdaa\n5\nbbdab\n5\nbbdac\n5\nbbdad\n5\nbbdae\n5\nbbdba\n5\nbbdbb\n5\nbbdbc\n5\nbbdbd\n5\nbbdbe\n5\nbbdca\n5\nbbdcb\n5\nbbdcc\n5\nbbdcd\n5\nbbdce\n5\nbbdda\n5\nbbddb\n5\nbbddc\n5\nbbddd\n5\nbbdde\n5\nbbdea\n5\nbbdeb\n5\nbbdec\n5\nbbded\n5\nbbdee\n5\nbbeaa\n5\nbbeab\n5\nbbeac\n5\nbbead\n5\nbbeae\n5\nbbeba\n5\nbbebb\n5\nbbebc\n5\nbbebd\n5\nbbebe\n5\nbbeca\n5\nbbecb\n5\nbbecc\n5\nbbecd\n5\nbbece\n5\nbbeda\n5\nbbedb\n5\nbbedc\n5\nbbedd\n5\nbbede\n5\nbbeea\n5\nbbeeb\n5\nbbeec\n5\nbbeed\n5\nbbeee\n5\nbcaaa\n5\nbcaab\n5\nbcaac\n5\nbcaad\n5\nbcaae\n5\nbcaba\n5\nbcabb\n5\nbcabc\n5\nbcabd\n5\nbcabe\n5\nbcaca\n5\nbcacb\n5\nbcacc\n5\nbcacd\n5\nbcace\n5\nbcada\n5\nbcadb\n5\nbcadc\n5\nbcadd\n5\nbcade\n5\nbcaea\n5\nbcaeb\n5\nbcaec\n5\nbcaed\n5\nbcaee\n5\nbcbaa\n5\nbcbab\n5\nbcbac\n5\nbcbad\n5\nbcbae\n5\nbcbba\n5\nbcbbb\n5\nbcbbc\n5\nbcbbd\n5\nbcbbe\n5\nbcbca\n5\nbcbcb\n5\nbcbcc\n5\nbcbcd\n5\nbcbce\n5\nbcbda\n5\nbcbdb\n5\nbcbdc\n5\nbcbdd\n5\nbcbde\n5\nbcbea\n5\nbcbeb\n5\nbcbec\n5\nbcbed\n5\nbcbee\n5\nbccaa\n5\nbccab\n5\nbccac\n5\nbccad\n5\nbccae\n5\nbccba\n5\nbccbb\n5\nbccbc\n5\nbccbd\n5\nbccbe\n5\nbccca\n5\nbcccb\n5\nbcccc\n5\nbcccd\n5\nbccce\n5\nbccda\n5\nbccdb\n5\nbccdc\n5\nbccdd\n5\nbccde\n5\nbccea\n5\nbcceb\n5\nbccec\n5\nbcced\n5\nbccee\n5\nbcdaa\n5\nbcdab\n5\nbcdac\n5\nbcdad\n5\nbcdae\n5\nbcdba\n5\nbcdbb\n5\nbcdbc\n5\nbcdbd\n5\nbcdbe\n5\nbcdca\n5\nbcdcb\n5\nbcdcc\n5\nbcdcd\n5\nbcdce\n5\nbcdda\n5\nbcddb\n5\nbcddc\n5\nbcddd\n5\nbcdde\n5\nbcdea\n5\nbcdeb\n5\nbcdec\n5\nbcded\n5\nbcdee\n5\nbceaa\n5\nbceab\n5\nbceac\n5\nbcead\n5\nbceae\n5\nbceba\n5\nbcebb\n5\nbcebc\n5\nbcebd\n5\nbcebe\n5\nbceca\n5\nbcecb\n5\nbcecc\n5\nbcecd\n5\nbcece\n5\nbceda\n5\nbcedb\n5\nbcedc\n5\nbcedd\n5\nbcede\n5\nbceea\n5\nbceeb\n5\nbceec\n5\nbceed\n5\nbceee\n5\nbdaaa\n5\nbdaab\n5\nbdaac\n5\nbdaad\n5\nbdaae\n5\nbdaba\n5\nbdabb\n5\nbdabc\n5\nbdabd\n5\nbdabe\n5\nbdaca\n5\nbdacb\n5\nbdacc\n5\nbdacd\n5\nbdace\n5\nbdada\n5\nbdadb\n5\nbdadc\n5\nbdadd\n5\nbdade\n5\nbdaea\n5\nbdaeb\n5\nbdaec\n5\nbdaed\n5\nbdaee\n5\nbdbaa\n5\nbdbab\n5\nbdbac\n5\nbdbad\n5\nbdbae\n5\nbdbba\n5\nbdbbb\n5\nbdbbc\n5\nbdbbd\n5\nbdbbe\n5\nbdbca\n5\nbdbcb\n5\nbdbcc\n5\nbdbcd\n5\nbdbce\n5\nbdbda\n5\nbdbdb\n5\nbdbdc\n5\nbdbdd\n5\nbdbde\n5\nbdbea\n5\nbdbeb\n5\nbdbec\n5\nbdbed\n5\nbdbee\n5\nbdcaa\n5\nbdcab\n5\nbdcac\n5\nbdcad\n5\nbdcae\n5\nbdcba\n5\nbdcbb\n5\nbdcbc\n5\nbdcbd\n5\nbdcbe\n5\nbdcca\n5\nbdccb\n5\nbdccc\n5\nbdccd\n5\nbdcce\n5\nbdcda\n5\nbdcdb\n5\nbdcdc\n5\nbdcdd\n5\nbdcde\n5\nbdcea\n5\nbdceb\n5\nbdcec\n5\nbdced\n5\nbdcee\n5\nbddaa\n5\nbddab\n5\nbddac\n5\nbddad\n5\nbddae\n5\nbddba\n5\nbddbb\n5\nbddbc\n5\nbddbd\n5\nbddbe\n5\nbddca\n5\nbddcb\n5\nbddcc\n5\nbddcd\n5\nbddce\n5\nbddda\n5\nbdddb\n5\nbdddc\n5\nbdddd\n5\nbddde\n5\nbddea\n5\nbddeb\n5\nbddec\n5\nbdded\n5\nbddee\n5\nbdeaa\n5\nbdeab\n5\nbdeac\n5\nbdead\n5\nbdeae\n5\nbdeba\n5\nbdebb\n5\nbdebc\n5\nbdebd\n5\nbdebe\n5\nbdeca\n5\nbdecb\n5\nbdecc\n5\nbdecd\n5\nbdece\n5\nbdeda\n5\nbdedb\n5\nbdedc\n5\nbdedd\n5\nbdede\n5\nbdeea\n5\nbdeeb\n5\nbdeec\n5\nbdeed\n5\nbdeee\n5\nbeaaa\n5\nbeaab\n5\nbeaac\n5\nbeaad\n5\nbeaae\n5\nbeaba\n5\nbeabb\n5\nbeabc\n5\nbeabd\n5\nbeabe\n5\nbeaca\n5\nbeacb\n5\nbeacc\n5\nbeacd\n5\nbeace\n5\nbeada\n5\nbeadb\n5\nbeadc\n5\nbeadd\n5\nbeade\n5\nbeaea\n5\nbeaeb\n5\nbeaec\n5\nbeaed\n5\nbeaee\n5\nbebaa\n5\nbebab\n5\nbebac\n5\nbebad\n5\nbebae\n5\nbebba\n5\nbebbb\n5\nbebbc\n5\nbebbd\n5\nbebbe\n5\nbebca\n5\nbebcb\n5\nbebcc\n5\nbebcd\n5\nbebce\n5\nbebda\n5\nbebdb\n5\nbebdc\n5\nbebdd\n5\nbebde\n5\nbebea\n5\nbebeb\n5\nbebec\n5\nbebed\n5\nbebee\n5\nbecaa\n5\nbecab\n5\nbecac\n5\nbecad\n5\nbecae\n5\nbecba\n5\nbecbb\n5\nbecbc\n5\nbecbd\n5\nbecbe\n5\nbecca\n5\nbeccb\n5\nbeccc\n5\nbeccd\n5\nbecce\n5\nbecda\n5\nbecdb\n5\nbecdc\n5\nbecdd\n5\nbecde\n5\nbecea\n5\nbeceb\n5\nbecec\n5\nbeced\n5\nbecee\n',
        capture_output=True,
        text=True,
        timeout=10,
    )
    expected = 'Yes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\nYes\n'
    actual = proc.stdout.strip()
    assert actual == expected.strip(), (
        f"Expected {expected.strip()!r}, got {actual!r}"
    )
