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: from collections import Counter
  from math import factorial
  N,M = map(int,input().split())
  
  # 因数分解
  def prime_factorize(n):
      a = []
      while n % 2 == 0:
          a.append(2)
          n //= 2
      f = 3
      while f * f <= n:
          if n % f == 0:
              a.append(f)
              n //= f
          else:
              f += 2
      if n != 1:
          a.append(n)
      return a
  
  # 重複組み合わせ
  # フェルマーの小定理nHk≡(n+k−1)!⋅(k!)M−2⋅((n−1)!)M−2(modM)
  def comb(n,k,p):
      """power_funcを用いて(nCk) mod p を求める"""
      if n<=0 or k<0 or n<k: return 0
      if k==0　or n==1: return 1
      a=factorial(n+k-1) %p
      b=factorial(k) %p
      c=factorial(n-1) %p
      return (a*power_func(b,p-2,p)*power_func(c,p-2,p))%p
  
  def power_func(a,b,p):
      """a^b mod p を求める"""
      if b==0: return 1
      if b%2==0:
          d=power_func(a,b//2,p)
          return d*d %p
      if b%2==1:
          return (a*power_func(a,b-1,p ))%p
  
  a = prime_factorize(M)
  c = Counter(a)
  l = []
  ans = 1
  for i in c.values():
      # それぞれの余りがわかっている時、その積の余りを求める時は以下
      ans *= comb(N,i,10**9+7)
      ans %= 10**9+7
  
  print(ans)
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"}]