#include<iostream>
using namespace std;
int f(int n)
{
int answer;
if(n==1||n==2)
answer=n;
else{
answer=f(n-1)+f(n-2);
}
return answer;
}
int main()
{
int n;
while(cin>>n)
{
cout<<f(n)<<endl;
}
return 0;
}
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN =100;
int memo[MAXN];
int f(int n)
{
int answer;
if(memo[n]!=-1)
answer=memo[n];
else {
if(n==1||n==2)
answer=n;
else{
answer=f(n-1)+f(n-2);
}
memo[n]=answer;
}
return answer;
}
int main()
{
int n;
while(cin>>n)
{
fill(memo,memo+MAXN,-1);
cout<<f(n)<<endl;
}
return 0;
}
#include<iostream>
#include<cstring>
using namespace std;
const int MAXN =100;
int dp[MAXN];
int main()
{
int n;
while(cin>>n)
{
memset(dp,0,MAXN);
dp[0]=0;
dp[1]=1;
dp[2]=2;
for(int i=3;i<=n;i++)
{
dp[i]=dp[i-1]+dp[i-2];
}
cout<<dp[n]<<endl;
}
return 0;
}