from tools import number_theory

def trans_num(num):
    s_num = str(num)
    digit = set(s_num)
    digit.remove(s_num[-1])
    for d in digit:
        if d == s_num[0]:
            yield [int(s_num.replace(d, ch)) for ch in '123456789' if ch != d]
        else:
            yield [int(s_num.replace(d, ch)) for ch in '0123456789' if ch != d]

def is_prime(num):
    for p in range(3, int(num ** 0.5) + 1):
        if not num % p:
            return False
    return True

def search(limit, count):
    prime = list(filter(lambda x: x > 100000, number_theory.make_prime(limit)))
    while len(prime):
        p = prime.pop(0)
        for l in trans_num(p):
            pl = list(filter(is_prime, l))
            if count - 1 <= len(pl):
                return [p] + pl

print(min(search(200000, 8)))