#135. 计算器

计算器

题目描述

你被要求设计一个计算器完成以下三项任务:

1\red 1、给定 Y\red Y , Z\red Z , P\red P , 计算 YZ(modP)\red{Y^Z\pmod P}的值;

2\red 2、给定 Y\red Y , Z\red Z , P\red P , 计算满足xYZ(modP)\red{x^Y\equiv Z\pmod P}的最小非负整数;

3\red 3、给定 Y\red Y , Z\red Z , P\red P , 计算满足YxZ(modP)\red{Y^x\equiv Z\pmod P}的最小非负整数。

输入格式

输入包含多组数据。

第一行包含两个正整数 T\red T , K\red K 分别表示数据组数和询问类型(对于一个测试点内的所有数据,询问类型相同)。

以下 T\red T 行每行包含三个正整数 Y\red Y , Z\red Z , P\red P ,描述一个询问。

输出格式

对于每个询问,输出一行答案。

对于询问类型 2\red 23\red 3 ,如果不存在满足条件的数,则输出“Orz,Icannotfindx!\red{Orz, I cannot find x!}”,注意逗号与“I\red I”之间有一个空格。

样例

输入样例

3 1
2 1 3
2 2 3
2 3 3

输出样例

2
1
2

提示

1Y,Z,P109\red{1\leq Y,Z,P\leq 10^9} , 其中 P\red P 为质数。

1T10\red{1\leq T\leq 10}