#include #include #include #include using namespace std; struct Bigint{ int len; int s[1010]; Bigint(){} Bigint(int x) { len=0; while (x) { s[++len]=x % 10; x/=10; } } void init() { memset(s,0,sizeof(s)); } void print() { for (int i=len;i>=1;--i)putchar(s[i]+'0'); puts(""); } }Fib[210],t; int n; Bigint add(Bigint &a,Bigint &b) { t.init(); t.len=max(a.len,b.len); for (int i=1;i<=t.len;++i) t.s[i]=a.s[i]+b.s[i]; for (int i=1;i<=t.len;++i) t.s[i+1]+=t.s[i]/10,t.s[i]%=10; while (t.s[t.len+1]!=0) t.len++; return t; } int main() { Fib[1]=Bigint(1);Fib[2]=Bigint(2); for (int i=3;i<=200;++i) Fib[i]=add(Fib[i-1],Fib[i-2]); while(scanf("%d",&n)!=EOF) Fib[n].print(); return 0; }