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)