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: if __name__ == "__main__":
      # from time import perf_counter
      mod = 10**9 + 7
      n, m = map(int, input().split())
  
      pow_ = [0] * 31
  
      # perf = perf_counter()
  
      x = m
      divisor = 2
      power = 0
      while x % divisor == 0:
          x //= divisor
          power += 1
      if power > 0:
          pow_[power] += 1
  
      divisor = 3
      while x > 1 and divisor**2 <= m:
          power = 0
          while x % divisor == 0:
              x //= divisor
              power += 1
          if power > 0:
              pow_[power] += 1
          divisor += 2
      if x > 1:
          pow_[1] += 1
  
      # print('prime_factorization', perf_counter() - perf)
      # print(pow_)
  
      # def prime_factorization(n):
      #     i = 2
      #     res = []
      #     while i * i <= n:
      #         cnt = 0
      #         while n % i == 0:
      #             n /= i
      #             cnt += 1
      #         if cnt > 0:
      #             res.append(cnt)
      #         i += 1
      #     if n > 1:
      #         res.append(1)
      #     return res
  
      # perf = perf_counter()
      # res = prime_factorization(m)
      # print('prime_factorization', perf_counter() - perf)
      # print(res)
  
      # perf = perf_counter()
  
      ans = 1
      t = 1
      d = 1
      for power, cnt in enumerate(pow_[1:], 1):
          # 1 <= power <= 30
          t = t * (n - 1 + power) % mod
          d = d * pow(power, mod - 2, mod) % mod
          # print(power, cnt, ans, t, d)
          ans = ans * pow(t * d % mod, cnt, mod) % mod
          # for _ in range(cnt):
          #     ans = ans * t * d % mod
      print(ans)
      # print('calculation', perf_counter() - perf)
  
  # TLEの原因は、巨大素数の判定
  # divisor ** 2 <= m
  # で探索を打ち切って、m>1なら巨大な素数
  # 冪数をリストにappendする方式の方が数ms速いが、
  # 冪数indexに該当素数数を加算していくと
  # 最後の計算で、同じ冪数を一括計算できるから、大差ないか
  
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"}]