output_description: Print the number of the sequences consisting of positive integers that satisfy
  the condition, modulo 10^9 + 7.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M
attempt: #include <bits/stdc++.h>
  #define rep(i,n) for(int i=0, i##_len=(n); i<i##_len; ++i)
  #define all(x) (x).begin(),(x).end()
  #define sz(x) ((int)(x).size())
  #define ZERO(a) memset(a,0,sizeof(a))
  #define MINUS(a) memset(a,0xff,sizeof(a))
  #define MEMSET(v, h) memset((v), h, sizeof(v))
  #define pb push_back
  #define mp make_pair
  #define y0 y3487465
  #define y1 y8687969
  #define j0 j1347829
  #define j1 j234892
  typedef long long ll;
  template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
  template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }
  using namespace std;
  
  vector<pair<long long, long long> > prime_factorize(long long n) {
    vector<pair<long long, long long> > res;
    for (long long p = 2; p * p <= n; ++p) {
      if (n % p != 0) continue;
      int num = 0;
      while (n % p == 0) { ++num; n /= p; }
      res.push_back(make_pair(p, num));
    }
    if (n != 1) res.push_back(make_pair(n, 1));
    return res;
  }
  
  const int MAX = 210000;
  const int MOD = 1000000007;
  
  long long fac[MAX], finv[MAX], inv[MAX];
  void COMinit(){
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for(int i = 2; i < MAX; i++){
      fac[i] = fac[i-1] * i % MOD;
      inv[i] = MOD - inv[MOD%i] * (MOD/i) % MOD;
      finv[i] = finv[i-1] * inv[i] % MOD;
    }
  }
  long long COM(int n, int k){
    if(n < k) return 0;
    if (n < 0 || k < 0) return 0;
    return fac[n] * (finv[k] * finv[n-k] % MOD) % MOD;
  }
  
  int main(){
    ll N,M;
    cin >> N >> M;
    COMinit();
    auto vec = prime_factorize(M);
  
    ll ans = 1;
    for(auto v: vec){
      int num = v.second;
      ll ret = COM(num+N-1,N-1);
      ans = ans*ret % MOD;
    }
  
    cout << ans << endl;
  
  
  
    return 0;
  }
  
problem_description: Statement
  
  You are given positive integers N and M.
  
  How many sequences a of length N consisting of positive integers satisfy a_1
  \times a_2 \times ... \times a_N = M? Find the count modulo 10^9+7.
  
  Here, two sequences a' and a'' are considered different when there exists some
  i such that a_i' \neq a_i''.
samples: [{"input": "2 6", "output": "4\n    \n\nFour sequences satisfy the condition: \\\\{a_1, a_2\\\\} = \\\\{1, 6\\\\}, \\\\{2, 3\\\\},\n\\\\{3, 2\\\\} and \\\\{6, 1\\\\}.\n\n* * *"}, {"input": "3 12", "output": "18\n    \n\n* * *"}, {"input": "100000 1000000000", "output": "957870001"}]