/*
24/2/3
递推、递归
题意:每次走一阶或两阶 问有多少种走法
//用递推是如此的简单:由题意知有n阶台阶 ,最后一步可以走一阶也可以走两阶 那么n阶台阶的走法 = n-1 阶台阶的走法 + n - 2阶台阶的走法
//我一开始用递归 画一个递归二叉树 每次选一或选二 感觉没有递推简单
*/
#include<iostream>
using namespace std;
const int N = 30+1;
int st[N];
int n;
int main(){
st[1] = 1;
st[2] = 2;
for(int i = 3; i <= N; i++){
st[i] = st[i -1] + st[i-2];
}
while(cin >> n){
cout << st[n] << endl;
}
return 0;
}