#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef pair P; #define MOD 1000000007 // 10^9 + 7 #define INF 1000000000 // 10^9 #define LLINF 1LL<<60 // mod付きpower // x^n ll modpow(ll x, ll n) { if (n == 0) return 1LL; else if (n % 2 == 0) return modpow((x*x) % MOD, n / 2) % MOD; else return (modpow((x*x) % MOD, n / 2) * x) % MOD; } // a/bを返す ll divMod(ll a, ll b) { ll res = a * modpow(b, MOD - 2); return res % MOD; } int main() { cin.tie(0); ios::sync_with_stdio(false); ll B, C, D; cin >> B >> C >> D; ll ans; if (C == 1) { ans = (B%MOD)*(D%MOD); ans %= MOD; } else { // C^D - 1 ans = modpow((C%MOD), D); ans--; if (ans < 0) ans += MOD; //cout << ans << endl; // *B*C/(C-1) ans *= (B%MOD); ans %= MOD; ans *= (C%MOD); ans %= MOD; ans = divMod(ans, (C - 1) % MOD); } cout << ans << endl; return 0; }