F - Number Sequence
#include<iostream>
#include<cstdio>
using namespace std;
struct mat
{
int ans[2][2];
};
mat I,MID;
int M;
mat cal(mat a,mat b)
{
mat c;
int i,j,k;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
c.ans[i][j]=0;
for(k=0;k<2;k++)
c.ans[i][j]+=a.ans[i][k]*b.ans[k][j];
c.ans[i][j]%=7;
}
return c;
}
mat atl(int n)
{
mat res=MID;
mat mid=I;
while(n){
if(n&1)
res=cal(res,mid);
mid=cal(mid,mid);
n>>=1;}
return res;
}
int main()
{
int k,i,j;
int a,b,n;
while(scanf("%d%d%d",&a,&b,&n)!=-1)
{
if(a==0&&b==0&&n==0)
break;
I.ans[0][0]=a;
I.ans[1][0]=b;
I.ans[0][1]=1;
I.ans[1][1]=0;
MID.ans[0][0]=1;
MID.ans[0][1]=1;
MID.ans[1][0]=0;
MID.ans[1][1]=0;
if(n<3)
printf("1\n");
else{
mat l=atl(n-2);
printf("%d\n",l.ans[0][0]);
}
}
return 0;
}