#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #define BIT(a) (1 << (a)) using namespace std; //using namespace boost::multiprecision; long long MOD = 1000000007; long long mod_pow(long long x, long long n){ long long res = 1; for(int i = 0;i < 60; i++){ if(n >> i & 1) res = res * x % MOD; x = x * x % MOD; } return res; } int main(void){ long long B, C, D; cin >> B >> C >> D; B %= MOD; C %= MOD; if (C == 1){ cout << B*(D%MOD)%MOD << endl; return 0; } long long bunsi = B*C%MOD*(1-mod_pow(C, D))%MOD; long long bunbo = mod_pow(1-C, MOD-2); long long ans = bunsi*bunbo%MOD; cout << ans << endl; return 0; }