#include using namespace std; int main(){ int M = 200010; vector isprime(M, true); deque P; isprime[0] = false; isprime[1] = false; for (int p = 2; p*p <= M; p++){ if (!isprime[p]) continue; for (int m = 2*p; m <= M; m += p){ isprime[m] = false; } } for (int p = 0; p < M; p++){ if (isprime[p]) P.push_back(p); } int L, R; cin >> L >> R; while (!P.empty() && P.front() < L) P.pop_front(); while (!P.empty() && P.back() > R) P.pop_back(); vector V; for (int x : P){ while (x >= 10){ auto s = to_string(x); x = 0; for (char c : s) x += c-'0'; } V.push_back(x); } int N = P.size(); int len = 0, ans = 0; for (int l = 0; l < N; l++){ set st; for (int r = l; r < N; r++){ if (st.count(V[r])) break; st.insert(V[r]); if (len <= r-l+1) len = r-l+1, ans = P[l]; } } cout << ans << endl; }