/*
#include <stdio.h>
#include <stdlib.h>
int a[1001]={0};
int f(int n)
{
int i, j, k=0, temp;
for(i=1; i<=n; i++)
{
for(j=0; j<=n-i-1; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
k=1;
}
}
if(k==0) return i-1;
k=0;
}
}
int main()
{
int n, i;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
printf("%d", f(n));
}
*/
/*
#include<stdio.h>
int a[7];
int f()
{
int i, j, temp;
for(i=0; i<7; i++)
{
for(j=0; j<6; j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
int main()
{
int i;
for(i=0; i<7; i++)
{
scanf("%d", &a[i]);
}
f();
printf("%d\n%d", a[0], a[1]);
}
*/
/*
#include<stdio.h>
typedef struct student_
{
char stu[16];
int sco;
}student;
int main()
{
int i, j, n;
student st[51],temp;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%s %d", st[i].stu, &st[i].sco);
}
for(i=0; i<n; i++)
{
for(j=0; j<=n-2; j++)
{
if(st[j].sco<st[j+1].sco)
{
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
printf("%s", st[2].stu);
return 0;
}
*/
/*
#include<stdio.h>
typedef struct f
{
int n;
int n_;
}m;
int main()
{
int i, j, n;
m m[100], temp;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d %d", &m[i].n, &m[i].n_);
}
for(i=0; i<n; i++)
{
for(j=0; j<=n-2; j++)
{
if(m[j].n>m[j+1].n)
{
temp=m[j];
m[j]=m[j+1];
m[j+1]=temp;
}
}
}
for(i=0; i<n; i++)
{
printf("%d %d\n", m[i].n, m[i].n_);
}
return 0;
}
*/
/*
#include<stdio.h>
typedef struct nmmnmnmnmnmnfsljhfljhndfljsdhbfljshdlfshdflksjldfkjlkjf
{
char s[11];
int n;
}student;
int main()
{
int i, j, n, n1;
student st[100], temp;
scanf("%d %d", &n, &n1);
for(i=0; i<n; i++)
{
scanf("%s %d", st[i].s, &st[i].n);
}
for(i=0; i<n; i++)
{
for(j=0; j<=n-2; j++)
{
if(st[j].n<st[j+1].n)
{
temp=st[j];
st[j]=st[j+1];
st[j+1]=temp;
}
}
}
for(i=0; i<n1; i++)
{
printf("%s\n", st[i].s);
}
return 0;
}
*/
#include <stdio.h>
int memo[201]={};
int fib(int n)
{
if(memo[n]==0)
{
if(n == 1 || n == 2) return 1;
return fib(n-1)+sib
}
else
{
return memo[n];
}
}
int main()
{
int n;
scanf("%d", &n);
printf("%d", fib(n));
}