博士的计算机器

时间限制:20s    【提交】    空间限制:256MB

题目描述

一日,BY大神黄犇黄大组长打完羽毛球回来,发现博士正在用魔兽地图编辑器做一个
计算器的软件。
因为最近总是一些取模取模的,所以想非常快速的算出来。简而言之,就是对以下3
个问题进行讨论。
1.给定Y、Z、P,计算的值Y^Z mod P;
2.给定Y、Z、P,计算满足的Y^X ≡ Z (Mod P)最小非负整数。
3.给定Y、Z、P,计算C(z,y) Mod P 的值。(意义为Z中取Y的组合)


输入格式

第一行一个正整数N,描述数据组数。
接下来的N行,每行4个正整数Sum,y,z,p。
Sum表述询问类型,如上所述。对于第2种要求,若X不存在,则输出“MathError”
若P不为质数,那么 P=P1^k1 *P2^k2 * …… PL^KL,保证Pi^ki <=10^5
操作数1的操作个数小于501,保证Y,Z,P小于10^9
操作数2的操作个数小于31,保证Y,Z,P小于10^9,而且P为质数
操作数3的操作个数小于31,保证Y,Z,P小于10^7,而且P为质数,P<10^5


输出格式

要求有N行输出,每行一个整数,为询问的答案


样例输入

4
1 2 10 1000
2 3 1 1000
2 2 3 4
3 2 7 9

样例输出

24
0
Math Error
3

提示

没有写明提示


题目来源

没有写明来源