#include<stdio.h>
const int MOD=1e9+7;
struct matrix{
int x,y,**s;
void init(const int &a,const int &b){
x=a;y=b;
s=new int*[a];
for(int i=0;i<a;i++){
s[i]=new int[b];
}
}
};
void mat_multi(const matrix m1,const matrix m2,matrix &m3){
m3.init(m1.x,m2.y);
for(int i=0;i<m1.x;i++){
for(int j=0;j<m2.y;j++){
m3.s[i][j]=0;
for(int k=0;k<m1.y;k++){
m3.s[i][j]+=m1.s[i][k]*m2.s[k][j];
}
}
}
}
void mat_input(matrix &m){
int dx,dy;
scanf("%d%d",&dx,&dy);
m.init(dx,dy);
for(int i=0;i<m.x;i++){
for(int j=0;j<m.y;j++){
scanf("%d",&m.s[i][j]);
}
}
}
int mat_print(const matrix &m){
for(int i=0;i<m.x;i++){
for(int j=0;j<m.y;j++){
printf("%d ",m.s[i][j]);
}
putchar('\n');
}
}
matrix mat_pow(matrix mx,const int k){
if(k==1)return mx;
matrix mt;
mt.init(2,2);
mat_multi(mat_pow(mx,k/2),mat_pow(mx,k/2),mt);
if(k&1) mat_multi(mt,mx,mt);
return mt;
}
int main(){
int a,b,k;
scanf("%d%d%d",&a,&b,&k);
matrix M,m0;
M.init(1,2);
M.s[0][0]=a;
M.s[0][1]=b;
m0.init(2,2);
m0.s[0][0]=m0.s[0][1]=m0.s[1][0]=1;
m0.s[1][1]=0;
m0=mat_pow(m0,k);
mat_multi(M,m0,M);
printf("%d",M.s[0][1]);
}
#include<stdio.h>
const int MOD=1e9+7;
struct matrix{
int x,y,**s;
void init(const int &a,const int &b){
x=a;y=b;
s=new int*[a];
for(int i=0;i<a;i++){
s[i]=new int[b];
}
}
};
void mat_multi(const matrix m1,const matrix m2,matrix &m3){
m3.init(m1.x,m2.y);
for(int i=0;i<m1.x;i++){
for(int j=0;j<m2.y;j++){
m3.s[i][j]=0;
for(int k=0;k<m1.y;k++){
m3.s[i][j]+=m1.s[i][k]*m2.s[k][j];
}
}
}
}
void mat_input(matrix &m){
int dx,dy;
scanf("%d%d",&dx,&dy);
m.init(dx,dy);
for(int i=0;i<m.x;i++){
for(int j=0;j<m.y;j++){
scanf("%d",&m.s[i][j]);
}
}
}
int mat_print(const matrix &m){
for(int i=0;i<m.x;i++){
for(int j=0;j<m.y;j++){
printf("%d ",m.s[i][j]);
}
putchar('\n');
}
}
matrix mat_pow(matrix mx,const int k){
if(k==1)return mx;
matrix mt;
mt.init(2,2);
mat_multi(mat_pow(mx,k/2),mat_pow(mx,k/2),mt);
if(k&1) mat_multi(mt,mx,mt);
return mt;
}
void std_fib(int a,int b,int k){
int u=a,v=b;
while((k--)>0){
printf("%d ",u);u+=v;
if((k--)>0){
printf("%d ",v);v+=u;
}
}
printf("\n");
}
int main(){
int a,b,k0;
scanf("%d%d%d",&a,&b,&k0);
for(int k=1;k<=k0;k++){
matrix M,m0;
M.init(1,2);
M.s[0][0]=a;
M.s[0][1]=b;
m0.init(2,2);
m0.s[0][0]=m0.s[0][1]=m0.s[1][0]=1;
m0.s[1][1]=0;
m0=mat_pow(m0,k);
mat_multi(M,m0,M);
printf("%d ",M.s[0][1]);
}
printf("\n");
std_fib(a,b,k0);
}