#include<bits/stdc++.h>
using namespace std;
#define maxn 1000
struct BigInt{
int len,a[maxn];
BigInt(int x=0){
memset(a,0,sizeof(a));
for(len=1;x;a[len]=x%10,x/=10,len++);
len--;
}
int &operator[](int i){return a[i];}
void flatten(int L){
len=L;
for(int i=1;i<=len;a[i+1]+=a[i]/10,a[i]%=10,i++);
for(;!a[len];len--);
}
void print(){for(int i=max(len,1);i>=1;printf("%d",a[i]),i++);}
};
BigInt operator+(BigInt a,BigInt b){
BigInt c;
int len=max(a.len,b.len);
for(int i=1;i<=len;c[i]=a[i]+b[i],i++)
c.flatten(len+1);
return c;
}
int main(){
BigInt s1(1),s2(2),s3(0);
int n;
cin>>n;
for(int i=1;i<=n-2;i++){
s3=s1+s2;
s1=s2;
s2=s3;
}
s3.print();
}
全RE