#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
const int maxn=10010;
typedef long long LL;
string add(string a,string b){
string ans="";
LL len1=a.length(),len2=b.length();
LL num=max(len1,len2)-min(len1,len2);
if(len1>len2){
for(int i=0;i<num;i++)
b=b+'0';
}else if(len1<len2){
for(int i=0;i<num;i++)
a=a+'0';
}
int carry=0;
for(int i=0;i<len1||i<len2;i++){
int t= (a[i]-'0') + (b[i]-'0') + carry;
char c= ( t%10 + '0' );
carry = t/10;
ans=ans+c;
}
if(carry) {
char c= carry+'0' ;
ans=ans+c;
}
return ans;
}
void print(string a,string b){
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
cout<<a<<" "<<b<<endl;
}
int main(){
//fib
string a="1",b="1";
for(int i=0;i<50;i++){
print(a,b);
string t=b;
b= add(a,b);
a=t;
}
return 0;
}