#include #include #include #include #include #include #include using namespace std; using ll = long long; constexpr int P = 1000000007; int inv(int n) { int m = P, y = 0, v = 1; while (1) { int q = m / n; int r = m % n; if (r == 0) return v < 0 ? v + P : v; y -= v * q; swap(y, v); m = n; n = r; } } ll pow(ll n, ll k) { ll r = 1, t = n % P; for (; k != 0; k /= 2) { if (k & 1) r = r * t % P; t = t * t % P; } return r % P; } int main() { ll b, c, d; cin >> b >> c >> d; b %= P; c %= P; if (c == 1) { cout << b * (d % P) % P << endl; return 0; } ll cc = pow(c, d); cc--; if (cc < 0) cc += P; ll c1 = c; c1--; if (c1 < 0) c1 += P; cout << b * c % P * cc % P * inv(c1) % P << endl; return 0; }