def sieve(n): res = [] is_prime = [True] * (n + 1) for i in xrange(2, n + 1): if is_prime[i]: res.append(i) for j in xrange(i * i, n + 1, i): is_prime[j] = False return res def ng(need, numbers): for d in numbers: if not need[d]: return True return False def ok(need, exist): for n, e in zip(need, exist): if n and not e: return False return True primes = sieve(5000000) n = input() need = [False] * 10 for a in map(int, raw_input().split()): need[a] = True ans = -1 prev = 1 l = 0 while l < len(primes): r = l exist = [False] * 10 while r < len(primes): numbers = map(int, str(primes[r])) if ng(need, numbers): break for d in numbers: exist[d] = True r += 1 current = primes[r] - 1 if r < len(primes) else 5000000 if ok(need, exist): diff = current - prev ans = max(ans, diff) prev = current + 2 l = r + 1 print ans