#include <bits/stdc++.h>
using namespace std;
const int N = 1000000;
int MOD;
char b[N + 1], n[N + 1];
long long f(long long B) {
  long long ans = 1, P = B;
  int len = strlen(n);
  for (int i = len - 1; i >= 0; i--) {
    for (int j = 0; j < n[i] - '0'; j++) ans = ans * P % MOD;
    long long aux = 1;
    for (int j = 0; j < 10; j++) aux = aux * P % MOD;
    P = aux;
  }
  return ans;
}
int main() {
  scanf("%s %s %d", b, n, &MOD);
  long long B = 0;
  int len = strlen(b);
  for (int i = 0; i < len; i++) B = (10 * B + b[i] - '0') % MOD;
  long long ans = f(B);
  len = strlen(n);
  for (int i = len - 1;; i--)
    if (n[i] - '0') {
      n[i]--;
      for (int j = i + 1; j < len; j++) n[j] = '9';
      break;
    }
  ans = (ans - f(B) + MOD) % MOD;
  if (!ans) ans = MOD;
  printf("%lld\n", ans);
  return 0;
}
