mod=10**9+7 def mul(x1,y1,x2,y2,z): # (x1+y1*sqrt(z))*(x2+y2*sqrt(z)) x3=(x1*x2+y1*y2%mod*z)%mod y3=(x1*y2+y1*x2)%mod return x3,y3 def extpow(x,y,z,n): # (x+y*sqrt(z))^n if n==0: return (1,0) if n%2: x1,y1=extpow(x,y,z,n-1) return mul(x,y,x1,y1,z) else: x1,y1=extpow(x,y,z,n//2) return mul(x1,y1,x1,y1,z) a,b=map(int,input().split()) n=int(input()) ans1=extpow(a,1,b,n)[0] ans2=extpow(a,-1,b,n)[0] print((ans1+ans2)%mod)