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: import math
  n, m = map(int, input().split())
  
  mod = 10 ** 9 + 7
  
  b = []
  
  c = int(math.sqrt(m))
  for i in range(2, c+2):
      if m % i == 0:
      count = 0
      while m % i == 0:
          count += 1
          m = m // i
      b.append(count)
  
  fac = [1, 1]
  inv = [1, 1]
  finv = [1, 1]
  for i in range(2, n + max(b)+3):
      fac.append(fac[i-1] * i % mod)
      inv.append(mod - inv[mod%i] * (mod//i) % mod)
      finv.append(finv[i-1] * inv[i] % mod)
  
  def nck(n, k):
      if n < k:
          return 0
      if n < 0 or k < 0:
          return 0
      return fac[n] * (finv[k] * finv[n-k] % mod) % mod
  
  ans = 1
  for i in b:
      ans = (ans * nck(n-1+i, n-1)) % mod
  
  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"}]