编程题
### 问题描述
小蓝是一名数学爱好者,他对数论颇有研究。最近,他在研究一种与质数有关的函数。这个函数需要用到一些定义,分别是:
- $prime(x)$:表示数 $x$ 的所有质因子的集合。例如,$prime(140) = \left\{2,5,7\right\}$,$prime(169) = {13}$。
- $g(x,p)$:表示最大的正整数 $k$,使得 $p^k$ 能够整除 $x$。例如:
+ $g(45,3)=2$,因为 $45$ 能够整除 $3^2=9$,但不能整除 $3^3=27$。
+ $g(63,7)=1$,因为 $63$ 能够整除 $7^1=7$,但不能整除 $7^2=49$。
- $f(x,y)$:表示对于 $x$ 的所有质因子 $p\in prime(x)$ 其对应的 $g(y,p)$ 的乘积。例如:
+ $f(30,70)=g(70,2)\cdot g(70,3)\cdot g(70,5)=2^1\cdot 3^0\cdot 5^1=10$。
+ $f(525,63)=g(63,3)\cdot g(63,5)\cdot g(63,7)=3^2\cdot 5^0\cdot 7^1=63$。
现在,小蓝给你两个整数 $x$ 和 $n$,请你计算出 $f(x,1)\cdot f(x,2)\cdot...\cdot f(x,n) ~~\mathrm{mod}~~ (10^9+7)$ 的值。
### 输入格式
一行,包含两个整数 $x$ 和 $n$,用空格隔开。
### 输出格式
一个整数,表示 $f(x,1)\cdot f(x,2)\cdot \cdots \cdot f(x,n) ~~\mathrm{mod}~~(10^9+7)$ 的值。
### 样例输入
```txt
10 2
```
### 样例输出
```txt
2
```
### 样例说明
$f(10, 1)=g(1,2)\cdot g(1,5) = 1,f(10, 2)=g(2,2)\cdot g(2,5) = 1$。
### 评测数据规模
对于 $100$% 的评测数据,$2\leq x\leq 10^9,1\leq n\leq 10^{18}$。