#include <iostream>
#include <fstream>
using namespace std;
const int MAXN=210;
//int v[MAXN];
ifstream f("nunta.in");
ofstream g("nunta.out");
int N;
unsigned char F1[MAXN]={1,1},F2[MAXN]={1,2};
unsigned char *s1=F1,*s2=F2,*sx;
void afis(unsigned char A[])
{
for(int i=A[0];i>=1;i--)
g<<(int)A[i];
}
int adunare(unsigned char A[], unsigned char B[])
{
///calculam A<--A+B
int T = 0;
if(A[0]<B[0])A[0]=B[0];
for(int i = 1; i <= A[0]; i++)
{
T += A[i]+ B[i];
A[i] = T % 10;
T /= 10;
}
if(T>0)
A[++A[0]]=1;
}
int main()
{
f>>N;
if(N<=2)s2[1]=N;
else
for(int i=3;i<=N;i++)
{
adunare(s1,s2);
sx=s1;
s1=s2;
s2=sx;
}
afis(s2);
return 0;
}