#include<iostream>
#include<string.h>
using namespace std;
const int mod=7;
typedef struct node{
long long a[2][2];
void init(){
memset(a,0,sizeof(a));
for(int i=0;i<2;i++)
a[i][i]=1;
}
}matrix;
matrix mul(matrix a,matrix b){
matrix ans;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++){
ans.a[i][j]=0;
for(int k=0;k<2;k++)
ans.a[i][j]+=(a.a[i][k]*b.a[k][j])%mod;
ans.a[i][j]=(ans.a[i][j]+mod)%mod;
}
return ans;
}
matrix add(matrix a,matrix b){
matrix ans;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
ans.a[i][j]=(a.a[i][j]+b.a[i][j])%mod;
return ans;
}
matrix pow(matrix a,int n){
matrix ans;
ans.init();
while(n){
if(1&n) ans=mul(ans,a);
n/=2;
a=mul(a,a);
}
return ans;
}
int main(){
int a,b,n;
matrix s,ans;
cin>>a>>b>>n;
s.a[0][0]=0;s.a[0][1]=1;
s.a[1][0]=b;s.a[1][1]=a;
ans.a[0][0]=1;ans.a[0][1]=0;
ans.a[1][0]=1;ans.a[1][1]=0;
ans=mul(pow(s,n-1),ans);
cout<<ans.a[0][0]<<endl;
return 0;
}