#include #include #ifdef LOCAL #include #define debug(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else #define debug(...) (static_cast(0)) #endif using namespace atcoder; using mint=modint1000000007; using namespace std; using ll=long long; using ul=unsigned long long; int dx[9] = {-1, 1, 0, 0, -1, -1, 1, 1, 0}; int dy[9] = {0, 0, -1, 1, -1, 1, -1, 1, 0}; using Graph=vector>; ll op(ll a,ll b){return min(a,b);} ll e(){return 2e9;} vector>prime(long long N){ vector>ans; for(long long i=2;i*i<=N;i++){ int cnt=0; while(N%i==0)cnt++,N/=i; ans.push_back({i,cnt}); } if(N!=1)ans.push_back({N,1}); return ans; } int main(){ int M=0,m; int N,K; cin>>N>>K; vector>A=prime(N); mapmp; for(auto[a,b]:A)mp[a]=b; for(int i=2;i>B=prime(i); mapmp2; for(auto[a,b]:B)mp2[a]=b; int cnt=0; for(auto[k,v]:mp)cnt+=min(v,mp2[k]); int ans=1; if(cnt>=K){ for(auto[a,b]:B)ans*=(b+1); if(M