ll N,X,D[1d6],d,z,i=2; ll f(ll x,ll n,ll i){ if(n-1){ rep(i,i,d){ if(D[i]**n>x)break; x%D[i]||f(x/D[i],n-1,i); } }else++z; } { rd(N,X); for(++X;i*i<=X;++i) X%i||(D[d++]=i,i-X/i?D[d++]=X/i:0); sort(D,D+d); f(X,N,0); wt(z); }