#D1207. Primes and Multiplication

    ID: 1010 Type: Default 1000ms 256MiB

Primes and Multiplication

Primes and Multiplication

Let's introduce some definitions that will be needed later.

Let prime(x) be the set of prime divisors of x. For example, prime(140) = { 2, 5, 7 }, prime(169) = { 13 }.

Let g(x, p) be the maximum possible integer p^k where k is an integer such that x is divisible by p^k. For example:

  • g(45, 3) = 9 (45 is divisible by 3^2=9 but not divisible by 3^3=27),
  • g(63, 7) = 7 (63 is divisible by 7^1=7 but not divisible by 7^2=49).

Let f(x, y) be the product of g(y, p) for all p in prime(x). For example:

  • f(30, 70) = g(70, 2) ⋅ g(70, 3) ⋅ g(70, 5) = 2^1 ⋅ 3^0 ⋅ 5^1 = 10,
  • f(525, 63) = g(63, 3) ⋅ g(63, 5) ⋅ g(63, 7) = 3^2 ⋅ 5^0 ⋅ 7^1 = 63.

You have integers x and n. Calculate f(x, 1) ⋅ f(x, 2) ⋅ … ⋅ f(x, n) mod{(10^{9} + 7)}.

Input

The only line contains integers x and n (2 ≤ x ≤ 10^{9}, 1 ≤ n ≤ 10^{18}) — the numbers used in formula.

Output

Print the answer.

Examples

Input

10 2

Output

2

Input

20190929 1605

Output

363165664

Input

947 987654321987654321

Output

593574252

Note

In the first example, f(10, 1) = g(1, 2) ⋅ g(1, 5) = 1, f(10, 2) = g(2, 2) ⋅ g(2, 5) = 2.

In the second example, actual value of formula is approximately 1.597 ⋅ 10^{171}. Make sure you print the answer modulo (10^{9} + 7).

In the third example, be careful about overflow issue.

inputFormat

Input

The only line contains integers x and n (2 ≤ x ≤ 10^{9}, 1 ≤ n ≤ 10^{18}) — the numbers used in formula.

outputFormat

Output

Print the answer.

Examples

Input

10 2

Output

2

Input

20190929 1605

Output

363165664

Input

947 987654321987654321

Output

593574252

Note

In the first example, f(10, 1) = g(1, 2) ⋅ g(1, 5) = 1, f(10, 2) = g(2, 2) ⋅ g(2, 5) = 2.

In the second example, actual value of formula is approximately 1.597 ⋅ 10^{171}. Make sure you print the answer modulo (10^{9} + 7).

In the third example, be careful about overflow issue.

样例

20190929 1605
363165664

</p>