Point: 100.0
Time limit: 2.0s
Memory limit: 250 M
Input: stdin
Output: stdout
Problem type

Alice có 2 số nguyên dương \(N\)\(M\). Alice muốn biết rằng tồn tại bao nhiêu dãy a có độ dài \(N\) gồm các số nguyên dương sao cho \(a_1 * a_2 * a_3 * ... * a_N = M\). Vì kết quả có thể rất lớn nên chỉ in ra kết quả sau khi chia lấy dư \((10^9+7).\)

Dữ liệu

  • Một dòng gồm 2 số nguyên dương \(N\)\(M\) \((N \le 10^5\), \(M \le 10^9)\).

Kết quả

  • In ra số lượng dãy gồm các số nguyên dương thỏa mãn điều kiện sau khi chia lấy dư cho \(10^9 + 7\).

Ví dụ

INPUT OUTPUT
2 6 4
100000 1000000000 957870001

Giải thích

  • Ở ví dụ 1 gồm 4 dãy thỏa mãn điều kiện là {\(a_1, a_2\)} = {\(1,6\)}, {\(2,3\)}, {\(3,2\)} và {\(6,1\)}.