#include #include #include using namespace std; int N; long K; const int LIM=20; long ans; vectorP; void f(long k,int n) { if(k==0)return; ans+=upper_bound(P.begin(),P.end(),k)-P.begin(); for(int m=min((long)n,k);m>LIM;m--) { f(k/m,m-1); } } main() { cin>>N>>K; if(N<=LIM) { for(int i=1;i<1<>j&1)t*=j+1; if(t<=K)ans++; } cout<>j&1)t*=j+1; if(t<=K)P.push_back(t); } sort(P.begin(),P.end()); f(K,N); cout<