#include <bits/stdc++.h>
#define ll long long
#define mod 1000000007
#define pb push_back
#define pint pair<int,int>
using namespace std;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	int i,j,n,m;	cin>>n>>m;
	vector<pint> v;

	for(i=2;i<=m;i++){
		if(i*i>m)	break;
		if(m%i!=0)	continue;
		int temp=0;
		while(m%i==0){
			temp++;	m/=i;
		}
		v.pb(make_pair(i,temp));
	}
	if(m!=1)	v.pb(make_pair(m,1));

	ll ans=1;

	ll a[n][31],cum[n][31];

	for(i=0;i<n;i++){
		a[i][0]=1;	cum[i][0]=1;
	}

	for(j=1;j<=30;j++){
		a[n-1][j]=1;	cum[n-1][j]=(cum[n-1][j-1]+a[n-1][j])%mod;
	}

	for(i=n-2;i>=0;i--){
		for(j=1;j<=30;j++){
			a[i][j]=cum[i+1][j];
			cum[i][j]=cum[i][j-1]+a[i][j];	cum[i][j]%=mod;
		}
	}

	for(i=0;i<v.size();i++){
		ans=(ans*a[0][v[i].second])%mod;
	}

	cout<<ans<<endl;

	return 0;
}