#include <bits/stdc++.h>
using namespace std;
const int MAXN=1005;
struct Big
{
int l;
int num[MAXN];
void set(string s)
{
l=s.size();
for(int i=1;i<=l;i++)num[i]=s[l-i]-'0';
}
void print()
{
for(int i=l;i>=1;i--)printf("%d",num[i]);
printf("\n");
}
};
Big operator + (Big a,Big b)
{
Big c;
int al=a.l,bl=b.l;
int cl=max(al,bl);
int u=0;
for(int i=1;i<=cl;i++)
{
if(i<=al)u+=a.num[i];
if(i<=bl)u+=b.num[i];
c.num[i]=u%10;
u/=10;
}
if(u>0)
{
cl++;
c.num[cl]=u;
}
c.l=cl;
return c;
}
int main()
{
int n;
scanf("%d",&n);
Big a[5005];
a[0].set("0");
a[1].set("1");
for(int i=2;i<=n+1;i++)a[i]=a[i-1]+a[i-2];
if(n==0)printf("0\n");
else a[n+1].print();
return 0;
}
求调……