#include <bits/stdc++.h>
using namespace std;
long long mod = (long long)(1e9 + 7);
long long modpow(long long a, long long b) {
  if (!b) return 1;
  a %= mod;
  return modpow(a * a % mod, b / 2) * (b & 1 ? a : 1) % mod;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  string b, n;
  long long c;
  cin >> b >> n >> c;
  mod = c;
  long long A = 0;
  for (int i = 0; i < b.length(); i++) A = (10 * A + b[i] - '0') % mod;
  long long dp[10];
  dp[0] = 1;
  for (int d = 0; d < 10; d++)
    if (d) dp[d] = dp[d - 1] * A % mod;
  long long ans = 1;
  bool cont = true;
  for (int i = n.length() - 1; i >= 0; i--) {
    if (cont && n[i] == '0')
      n[i] = '9';
    else if (cont) {
      n[i]--;
      cont = false;
    }
    ans = ans * dp[n[i] - '0'] % mod;
    for (int d = 0; d < 10; d++) dp[d] = modpow(dp[d], 10);
  }
  ans = ans * (A - 1 + mod) % mod;
  if (!ans) ans = mod;
  cout << ans << endl;
  return 0;
}
