#include #include int main() { using namespace std; int k, n; cin >> k >> n; vector is_prime(n + 1, true); for (int i = 2; i <= n / i; i++) { if (!is_prime[i]) { continue; } for (int j = i * i; j <= n; j += i) { is_prime[j] = false; } } vector primes; for (int i = 2; i <= n; i++) { if (i >= k && is_prime[i]) { primes.push_back(i); } } constexpr int MOD = 9; const int m = primes.size(); int ans = 0, max_size = 0, cnt = 0, r = 0; vector used(MOD, false); for (int l = 0; l < m; l++) { while (r < m && cnt < MOD) { if (used[primes[r] % MOD]) { break; } used[primes[r] % MOD] = true; cnt++; r++; } if (r - l >= max_size) { ans = primes[l]; max_size = r - l; } used[primes[l] % MOD] = false; cnt--; } cout << ans << endl; }