/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class NodeTransitionFunction
{
int exp, KVal;
NodeTransitionFunction(int exp, int KVal){
this.exp = exp;
this.KVal = KVal;
}
int apply(int val){
int ans = 1;
int e = exp;
while(e != 0){
if(e % 2 == 0){
val = (val * val) % KVal;
e = e / 2;
}
else{
ans = (ans * val) % KVal;
e--;
}
}
return ans;
}
{
NodeTransitionFunction x = new NodeTransitionFunction(3, 12);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgTm9kZVRyYW5zaXRpb25GdW5jdGlvbgp7CglpbnQgZXhwLCBLVmFsOwoJTm9kZVRyYW5zaXRpb25GdW5jdGlvbihpbnQgZXhwLCBpbnQgS1ZhbCl7CgkJdGhpcy5leHAgPSBleHA7CgkJdGhpcy5LVmFsID0gS1ZhbDsKCX0KCQoJaW50IGFwcGx5KGludCB2YWwpewoJCWludCBhbnMgPSAxOwoJCWludCBlID0gZXhwOwoJCXdoaWxlKGUgIT0gMCl7CgkJCWlmKGUgJSAyID09IDApewoJCQkgICAgdmFsID0gKHZhbCAqIHZhbCkgJSBLVmFsOwoJCQkgICAgZSA9IGUgLyAyOwoJCQl9CgkJCWVsc2V7CgkJCSAgICBhbnMgPSAoYW5zICogdmFsKSAlIEtWYWw7CgkJCSAgICBlLS07CgkJCX0KCQl9CgkJcmV0dXJuIGFuczsKCX0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCU5vZGVUcmFuc2l0aW9uRnVuY3Rpb24geCA9IG5ldyBOb2RlVHJhbnNpdGlvbkZ1bmN0aW9uKDMsIDEyKTsKCQlTeXN0ZW0ub3V0LnByaW50KHguYXBwbHkoNSkpOwoJCQoJfQp9