program rsa;
const MaxL=100;
var N, d, L ,pot, b,e,m, i:int64;
messaggio : array [0..maxL] of int64;
plaintext : array [0..maxL] of char;
function fast_pow (base:int64; esp:int64; modd:int64) :int64;
var meta :int64;
begin
if esp = 0 then fast_pow:=1
else
if esp = 1 then fast_pow:= base mod modd
else
begin
meta := fast_pow(base, esp div 2, modd);
if esp mod 2 =0 then fast_pow:= (meta*meta) mod modd
else fast_pow:= (meta*meta * base) mod modd;
end;
end;
begin
readln(b,e,m);
pot:=fast_pow(b,e,m);
writeln(pot);
end.
cHJvZ3JhbSByc2E7CmNvbnN0IE1heEw9MTAwOwp2YXIgTiwgZCwgTCAscG90LCBiLGUsbSwgaTppbnQ2NDsKICAgIG1lc3NhZ2dpbyA6IGFycmF5IFswLi5tYXhMXSBvZiBpbnQ2NDsKICAgIHBsYWludGV4dCA6IGFycmF5IFswLi5tYXhMXSBvZiBjaGFyOwogICAgCmZ1bmN0aW9uIGZhc3RfcG93IChiYXNlOmludDY0OyBlc3A6aW50NjQ7IG1vZGQ6aW50NjQpIDppbnQ2NDsKdmFyIG1ldGEgOmludDY0OwpiZWdpbgogaWYgZXNwID0gMCB0aGVuICBmYXN0X3Bvdzo9MQogZWxzZQogICAgaWYgZXNwID0gMSB0aGVuIGZhc3RfcG93Oj0gYmFzZSBtb2QgbW9kZAogICAgZWxzZQogICAgIGJlZ2luCiAgICAgICBtZXRhIDo9IGZhc3RfcG93KGJhc2UsIGVzcCBkaXYgMiwgbW9kZCk7CQogICAgICAgaWYgZXNwIG1vZCAyID0wIHRoZW4gZmFzdF9wb3c6PSAobWV0YSptZXRhKSBtb2QgbW9kZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgZmFzdF9wb3c6PSAobWV0YSptZXRhICogYmFzZSkgbW9kIG1vZGQ7CgllbmQ7CmVuZDsKYmVnaW4KIHJlYWRsbihiLGUsbSk7CiBwb3Q6PWZhc3RfcG93KGIsZSxtKTsKIHdyaXRlbG4ocG90KTsKIGVuZC4=