1606. 取模

记起始整型变量 x=0 ,你需要实现 x 与若干个整数的四则运算,每次结果重新保存为 x ,并将最终结果对 p 取模 (不保证 p 是质数) 。

输入

首先输入一行两个整数 t,p(1\le t\le10^5,2\le p\le10^{9}+7)

接下来输入 t 行,每行两个整数 c, y (1\le c\le4,0\le|y|\le10^{18})

c=1 ,计算 x+y 并将结果保存在 x 内。

c=2 ,计算 x-y 并将结果保存在 x 内。

c=3 ,计算 x\times y 并将结果保存在 x 内。

c=4 ,计算 x\div y 并将结果保存在 x 内。

输入保证计算过程不会出现零除,且保证除数存在逆元。

输出

每次运算结束后输出一行一个整数,为 x\bmod p 。共输出 t 行,你需要保证输出为非负数。

样例

标准输入 复制文本
6 1000000007
1 1437
2 1438
1 580
3 2
4 4
3 8
标准输出 复制文本
1437
1000000006
579
1158
500000293
2316
登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 353
通过 92