#include using namespace std; using i64 = int64_t; using vi = vector; using vvi = vector; int numroot(int k) { if (k == 0) return 0; if (k % 9 == 0) return 9; return k % 9; } vi ps(202020, 1); int main() { ps[0] = ps[1] = 0; for (int i = 2; i < 202020; i++) { if (ps[i] == 0) continue; for (int j = 2; i * j < 202020; j++) { ps[i * j] = 0; } } int k, n; cin >> k >> n; vi qs; for (int i = k; i <= n; i++) { if (ps[i]) qs.push_back(i); } set roots; int l = 0, r = 0; int sz = 0, ans; while (1) { if (r >= qs.size()) break; int root = numroot(qs[r]); if (roots.count(root) == 0) { r++; roots.insert(root); if (roots.size() >= sz) { sz = roots.size(); ans = qs[l]; } } else { while (1) { int root2 = numroot(qs[l]); roots.erase(root2); l++; if (root == root2) break; } } } cout << ans << endl; }