#include #define fst(t) std::get<0>(t) #define snd(t) std::get<1>(t) #define thd(t) std::get<2>(t) #define unless(p) if(!(p)) #define until(p) while(!(p)) using ll = std::int64_t; using P = std::tuple; int gcd(int a, int b){ if(b == 0){ return a; } return gcd(b, a % b); } int f(int n){ int c = 0; for(int i=2;i*i<=n;++i){ while(n % i == 0){ n /= i; c += 1; } } if(n > 1){ c += 1; } return c; } int g(int n){ int c = 1; for(int i=2;i*i<=n;++i){ int d = 1; while(n % i == 0){ n /= i; d += 1; } c *= d; } if(n > 1){ c *= 2; } return c; } int main(){ std::cin.tie(nullptr); std::ios::sync_with_stdio(false); int N, K; std::cin >> N >> K; auto p = std::make_tuple(0, 0); for(int i=1;i= K){ p = std::min(p, std::make_tuple(-g(i), i)); } } int m; std::tie(std::ignore, m) = p; std::cout << m << std::endl; }