import std; void main() { ulong B, C, D; readf("%d %d %d\n", B, C, D); ulong M = 1000000007; ulong res; if (C == 1) { res = (B * D) % M; } else { ulong A = ((B % M) * (C % M)) % M; res = ((A * ((powmod(C, D, M) + M - 1) % M)) % M) * powmod(C-1, M-2, M) % M; } res.writeln; }