http://acm.hdu.edu.cn/showproblem.php?pid=1005
https://www.cnblogs.com/CXCXCXC/p/4641812.html
#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
int ab[2][2];
void multMatr(int m1[][2],int m2[][2]){
int m[2][2];
memset(m,0,sizeof(m) );
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
for(int k=0;k<2;k++){
m[i][j]+=( (m1[i][k]*m2[k][j]) );
}
m[i][j]%=7;
}
}
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
m1[i][j]=m[i][j];
}
void Matrix_multi(int n){
int maxt[2][2];
memcpy(maxt,ab,sizeof(maxt));
ab[0][0]=1;
ab[0][1]=0;
ab[1][0]=0;
ab[1][1]=1;
while(n){
if(n%2){
multMatr(ab,maxt);
}
n /=2;
multMatr(maxt,maxt);
}
}
int main(){
int a,b,n;
while(cin>>a>>b>>n){
if(a+b+n==0){
break;
}
if(n==1||n==2){
cout<<1<<endl;
continue;
}
memset(ab,0,sizeof(ab));
ab[0][0]=a;
ab[0][1]=b;
ab[1][0]=1;
ab[1][1]=0;
Matrix_multi(n-2);
int x=(ab[0][0]+ab[0][1])%7;
cout<<x<<endl;
}
}