A,B,N=map(int,input().split()) L=[0 for i in range(11)] for i in range(B,A-1,-1): #print(i) if i*2>B: L[i]=1 elif i==5: if B>=i*2: L[i]+=(2**N)-L[i*2] else: L[i]+=1 elif i==4: if B>=i*2: L[i]+=(2**N)-L[i*2] else: L[i]+=1 elif i==3: if B>=3*i: L[i]+=(3**N)-L[i*3]-L[i*2] elif B>=2*i: L[i]+=(2**N)-L[i*2] else: L[i]+=1 elif i==2: if B>=5*i: L[i]+=(5**N)-L[i*5]-L[i*3]-(2**N) elif B>=4*i: L[i]+=(4**N)-L[i*3]-(2**N) elif B>=3*i: L[i]+=(3**N)-L[i*3]-L[i*2] elif B>=2*i: L[i]+=(2**N)-L[i*2] else: L[i]+=1 if B>=6 and 4>=A: L[2]+=(2**N)-2 if B>=8 and 6>=A: L[2]+=(2**N)-2 if B>=10 and 6>=A: L[2]+=(2**N)-2 if B>=10 and 8>=A: L[2]+=(2**N)-2 if B>=10 and 4>=A: L[2]+=(2**N)-2 mod=10**9+7 ans=1 for i in range(1,11): ans=ans*pow(i,L[i],mod) ans%=mod print(ans) #print(L)