1606. 取模

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

输入

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

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

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

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

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

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

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

输出

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

样例

标准输入 复制文本
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