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: def main()
    N, M = map(int, input().split())
  
     def factorization(n):
          arr = []
          temp = n
          for i in range(2, int(-(-n**0.5//1))+1):
              if temp % i == 0:
                  cnt = 0
                  while temp % i == 0:
                      cnt += 1
                      temp //= i
                  arr.append([i, cnt])
          if temp != 1:
              arr.append([temp, 1])
  
          if arr == [] and n != 1:
              arr.append([n, 1])
  
          return arr
  
      mod = 10**9 + 7
  
      def cmb(n, r, mod):
          if (r < 0 or r > n):
              return 0
          r = min(r, n-r)
          return g1[n] * g2[r] * g2[n-r] % mod
  
      g1 = [1, 1]
      g2 = [1, 1]
      inverse = [0, 1]
      for i in range(2, N+100 + 1):
          g1.append((g1[-1] * i) % mod)
          inverse.append((-inverse[mod % i] * (mod//i)) % mod)
          g2.append((g2[-1] * inverse[-1]) % mod)
  
      primes = factorization(M)
      # 何箇所に分けるか（cnt以下）,その中でどう分けるか（しきりをどこにおくか（振り分けられないものが出ると選べれないのとおなじになるので、cnt - 選んだ数））
  
      ans = 1
  
      for p, cnt in primes:
          tmp = cmb(N+cnt-1, N-1, mod)
          ans *= tmp
          ans %= mod
  
      print(ans)
  
  
  main()
  
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"}]