#include using i64 = long long; template struct exfield { i64 a, b; exfield operator+(const exfield& r) const { return exfield{(a + r.a) % MOD, (b + r.b) % MOD}; } exfield operator*(const exfield& r) const { return exfield{(a * r.a % MOD + b * r.b % MOD * C % MOD) % MOD, (a * r.b % MOD + b * r.a % MOD) % MOD}; } exfield power(i64 k) const { exfield ret{1, 0}, x{a, b}; while(k) { if(k & 1) ret = ret * x; x = x * x; k >>= 1; } return ret; } }; int b; int main() { int a; i64 n; scanf("%d%d%lld", &a, &b, &n); printf("%lld\n", (exfield{a, 1}.power(n) + exfield{a, -1}.power(n)).a); return 0; }