#include "bits/stdc++.h" #define REP(i,n,N) for(ll i=(n); i<(N); i++) #define RREP(i,n,N) for(ll i=(N-1); i>=n; i--) #define CK(n,a,b) ((a)<=(n)&&(n)<(b)) #define ALL(v) (v).begin(),(v).end() #define p(s) cout<<(s)<> typedef long long ll; using namespace std; const ll mod = 1e9+7; ll B,C,D; long long fast_power(long long a, long long b) { long long ret = 1; // aが負の場合 if (a < 0) { a = -a; if (b % 2 == 1) ret = -1; } // 累乗計算 while (b>0) { if (b & 1) { ret *= a; } a *= a; a %= mod; ret %= mod; b >>= 1; } return ret; } int main(){ cin>>B>>C>>D; B%=mod; C%=mod; if(C==1){ p(B*(D%mod)%mod); return 0; } ll CD = fast_power(C,D+1); ll CMOD = fast_power(C-1,mod-2); ll ans = (B*(CD-1)%mod)*CMOD%mod; p((ans-B+mod)%mod); return 0; }