健康阳光,积极向上!
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

           
     好的,那么这题就这样吧,逆熵的特斯拉博士使用万能的逆熵科技出好了S级女武神考核的试题。但是爱因斯坦博士觉得这题非常简单,连草履虫都会做,所以爱因斯坦博士决定小小加强一下这题!

加强后的题目:

    你有一个长度为 n 的数组 a ,其中每个元素都是正整数。

    现在你可以执行最多 k 次操作,每次操作可以将一个元素除以一个它的质因子。例如,如果 a[3] = 6 ,执行一次除以 3 的操作后, a[3] = 2 。

    请问在最多执行 k 次操作的前提下,数组 a 所有元素的乘积的最小值是多少。由于这个数可能很大,请输出这个数对 10^9 + 7 取模后的结果。

加强后,伟大的识之律者女士觉得这题有一点难,不禁爆起了 \*神州粗口\* ,所以她修改了你的意识,你现在要帮她参加考核。       
             


输入描述:

第一行输入两个正整数 n,k(1 \le n \le 2 \times 10^5,1 \le k \le 10^9)

第二行输入 n 个整数,表示数组 a(1 \le a_i \le 2 \times 10^5)

输出描述:

输出一个整数表示对 10^9 + 7 取模后的答案。
示例1

输入

复制
6 3
1 1 4 5 1 4

输出

复制
4

说明

其中一种操作方法如下:
第一次操作将a[3]除以2,变成2。
第二次操作将a[4]除以5,变成1。
第三次操作将a[6]除以2,变成2。
3次操作后,数组为1,1,2,1,1,2,乘积为4。