used = [0] * 10 for x in range(10): used[x] = False K = int(input()) N = int(input()) num = [2] prime = [] prime1 = [] table = [True] * (N + 1) for i in range(2, N + 1): if not table[i]: continue k = i + i while k < N + 1: table[k] = False k += i num.append(i) for x in range(len(num)): if num[x] >= K and num[x] != 0: prime1.append(num[x]) while num[x] >= 10: s = str(num[x]) num[x] = 0 for y in range(len(s)): num[x] += int(s[y]) prime.append(num[x]) length = 0 start = 0 best_s = 0 best_l = 0 i = 0 while i < len(prime): if not used[prime[i]]: used[prime[i]] = True length += 1 i += 1 else: if start >= len(prime): break while start < i and prime[start] != prime[i]: used[prime[start]] = False start += 1 start += 1 length = i - start + 1 i += 1 best_l = max(best_l, length) if best_l == length: best_s = start print(prime1[best_s])