#include "bits/stdc++.h" #define in std::cin #define out std::cout #define rep(i,N) for(LL i=0;i decomposit_prime(LL n) { LL d = 2; std::mapres; while (d * d <= n) { if (n % d == 0) { ++res[d]; n /= d; } else ++d; } ++res[n]; return res; } std::vectordivisor(LL num) { std::vectorres; for (LL i = 1; i * i <= num; ++i) { if (num % i == 0) { res.push_back(i); if ((num / i) != i) res.push_back(num / i); } } return res; } int main() { LL N, K; in >> N >> K; auto N_primes = decomposit_prime(N); LL ansN, ansC = 0; for (LL i = 1; i < N; ++i) { auto M_primes = decomposit_prime(i); LL same = 0; for (auto j : M_primes) same += std::min(j.second, N_primes[j.first]); if (same < K) continue; auto M_divs = divisor(i); if (ansC < M_divs.size()) { ansN = i; ansC = M_divs.size(); } } out << ansN << std::endl; }