#include<iostream>
#define endl "\n"
#define DIV 1000000007
using namespace std;
typedef long long ll;
ll k; // 바이러스 수
ll p; // 증가율
int n; // 총 시간
void input() {
cin >> k >> p >> n;
}
void solve() {
while (n--) {
k = (k * p) % DIV;
}
cout << k << endl;
}
int main(int argc, char** argv) {
input();
solve();
return 0;
}
n번만큼 p배 해주기. 단, k가 10의 8승, p가 10의 8승으로 수가 매우 크므로 long long 타입을 사용해주고, 매 연산마다 1000000007 로 모드 연산 해주기.