#define int bigint
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

给定一个大整数 a,它以质因数分解的形式表示为 a = {p_1}^{e_1} \times {p_2}^{e_2} \times \cdots \times {p_n}^{e_n}

其中,p_1, p_2, \cdots, p_n 是质数,e_1, e_2, \cdots, e_n 是对应的指数。

再给定一个正整数 b,请你计算 \left \lfloor \frac{a}{b} \right \rfloor,即 a 除以 b 向下取整的结果。

由于结果可能很大,请你输出结果对 10^9 + 7 取模后的值。

输入描述:

第一行包含一个整数 n (1 \le n \le 10^5),表示 a 的质因数分解中的项数。
接下来的 n 行,每行包含两个整数 p_i, e_i (2 \le p_i \le 999\,983, \, 1 \le e_i \le 10^9),表示 a 的一个质因数及其指数。
数据保证 p_1, p_2, \cdots, p_n 是质数且互不相等。
最后一行包含一个正整数 b (1 \le b \le 10^9)

输出描述:

输出一个整数,表示 \left \lfloor \frac{a}{b} \right \rfloor10^9 + 7 取模的结果。
示例1

输入

复制
4
2 10
3 6
5 3
11 2
7

输出

复制
612964564

备注:

在样例中:
a = 2^{10} \times 3^6 \times 5^3 \times 11^2 = 11\,290\,752\,000
\left \lfloor \frac{a}{b} \right \rfloor = \lfloor 1\,612\,964\,571.428\,571\,5 \rfloor = 1\,612\,964\,571
1\,612\,964\,571 \bmod 1\,000\,000\,007 = 612\,964\,564