Problem:
Score : 400 points

Problem 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''.

Constraints

All values in input are integers.

1 \leq N \leq 10^5

1 \leq M \leq 10^9

Input

Input is given from Standard Input in the following format:

N M

Output

Print the number of the sequences consisting of positive integers that satisfy the condition, modulo 10^9 + 7.

Sample Input 1

2 6

Sample Output 1

4

Four sequences satisfy the condition: \{a_1, a_2\} = \{1, 6\}, \{2, 3\}, \{3, 2\} and \{6, 1\}.

Sample Input 2

3 12

Sample Output 2

18

Sample Input 3

100000 1000000000

Sample Output 3

957870001

Solution in Perl (v5.18.2) (judge verdict: Wrong Answer)

use bigint;
sub comb{
    (my$i,$j)=@_;
    my $a=1;
    my $m=($i-$j<$j)?$i-$j:$j;
    $a*=$i-$_ foreach (0..$m-1);
    $a/=$_ foreach (1..$m);
    return $a;
}
sub div{
    $d=@_[0];
    while($m%$d==0){
        $l{$d}++;
        $m/=$d;
    }
}
($n,$m)=glob<>;
%l;
&div(2);
&div(3);
for(my$d=6;$d<=$m;$d+=6){
    &div($d-1);    
    last if $d>$m;
    &div($d+1);    
}
$a=1;
$n--;
$a*=&comb($n+$_,$_) for(values %l);
print $a%(7+1e9)