#include<cstring>
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
typedef long long ll;
ll quick_pow(ll a, ll b, ll z){
if(b == 0) return 1;
if(b % 2 == 1) return a * quick_pow(a, b - 1, z) % z;
else {
ll num = quick_pow(a, b/2, z) % z;
return num * num % z;
}
}
ll euler(ll n){
ll res = n;
for(int i = 2; i * i <= n; i++){
if( n % i == 0){
res = res - res / i;
while(n % i == 0){
n /= i;
}
}
}
if(n > 1){
res = res - res/n;
}
return res;
}
int main(){
ll a, c;
string b;
while(cin >> a >> b >> c){
ll d = euler(c);
ll len = b.length();
ll temp = 0;
for(int i = 0; i < len; i++){
temp = (temp * 10 + b[i] - '0') % d;
}
temp += d;
cout << quick_pow(a, temp, c) << endl;
}
return 0;
}