#include #include #include #include #include #define N 210 #define LL long long using namespace std; struct node{int a[N],len;}f[N][2],zero,ans[N]; int n; void add(node &c,node &a,node &b) { if(a.len>b.len) c.len=a.len; else c.len=b.len; for(int i=1;i<=c.len;i++) c.a[i]=a.a[i]+b.a[i]; for(int i=1;i<=c.len;i++) { c.a[i+1]+=c.a[i]/10; c.a[i]%=10; } int i=c.len; while(c.a[i+1]) { i++; c.a[i+1]+=c.a[i]/10; c.a[i]%=10; } c.len=i; } int main() { f[1][0].len=1;f[1][0].a[1]=1; ans[1].len=1;ans[1].a[1]=1; for(int i=2;i<=200;i++) { add(f[i][0],f[i-1][0],f[i-1][1]); add(f[i][1],zero,f[i-1][0]); add(ans[i],f[i][0],f[i][1]); } while(scanf("%d",&n)!=EOF) { for(int i=ans[n].len;i;i--) printf("%d",ans[n].a[i]); printf("\n"); } return 0; }