#import<iostream>
#define l long
l N,M,c,n=1,i=2,o=1e9+7;
l m(l a)
{
	l g=1,h=2*o-4;
	for(;h/=2;)
	{
		h&1?g=g*a%o:0,a=a*a%o;
    }
	return g;
}
l C(l b)
{
	l r=1,d=1;
	for(;b;r=r*(N-1+b)%o,d=d*b--%o);
	return r*m(d)%o;
}
int main()
{
	for(std::cin>>N>>M;i*i<=M;++i)
	{
		for(c=0;M%i<1;++c,M/=i);
		n=n*C(c)%o;
	}
	std::cout<<n*(M^1?N:1)%o<<std::endl;
}