from collections import deque K = int(input()) N = int(input()) prime = [] M = 200001 isPrime = [True]*200001 isPrime[0] = isPrime[1] = False for i in range(2, M): if isPrime[i]: prime.append(i) for j in range(i*i, M, i): isPrime[j] = False lst = [] for p in prime: pp = str(p) while len(pp) > 1: x = 0 for v in pp: x += int(v) pp = str(x) lst.append(pp) dq0 = deque() dq1 = deque() max_length = 0 max_values = 0 for p, s in zip(prime, lst): if p < K: continue if p > N: break while dq0 and s in dq0: dq0.popleft() dq1.popleft() dq0.append(s) dq1.append(p) if max_length <= len(dq0): max_length = len(dq0) max_values = dq1[0] print(max_values)