import sys
input = sys.stdin.readline
# 바이러스의 수 K, 증가율 P, 총 시간 N(초)
K, P, N = map(int, input().split())
# 최종 바이러스 개수를 1000000007로 나눈 나머지
print(K*(P**N)%1000000007)
제곱으로 풀면 숫자가 너무 커져 연산하는 데 엄청난 시간을 소모하여 시간 초과가 발생한다.
따라서 숫자가 커지지 않도록 중간중간 % 1000000007을 진행해줘야 한다.
import sys
input = sys.stdin.readline
# 바이러스의 수 K, 증가율 P, 총 시간 N(초)
K, P, N = map(int, input().split())
# 최종 바이러스 개수를 1000000007로 나눈 나머지
for i in range(N):
K = (K * P) % 1000000007
print(K)
import sys
input = sys.stdin.readline
# 바이러스의 수 K, 증가율 P, 총 시간 N(초)
K, P, N = map(int, input().split())
# 최종 바이러스 개수를 1000000007로 나눈 나머지
print((K * pow(P, N, 1000000007)) % 1000000007)