#include <iostream>
using namespace std;
// num[1] = 1;
// num[2] = 1;
// num[3] = 2;
// num[4] = 3;
// num[5] = 5;
// num[6] = 8;
// num[7] = 13;
// num[8] = 21;
// num[9] = 34;
// 动态规划:关键是找到状态转移方程
// 前面[1][2]的初始值状态,从[3]开始就是
// [n-1]的兔子数(长到三个月后每个月生一只的)+[n-2]的兔子数(新长到第三个月的)
int main() {
    int n;
    while (cin >> n) {
        int num[100];
        num[1] = num[2] = 1;
        num[3] = 2;
        for (int i = 4; i <= n; i++) {
            num[i] = num[i-1] + num[i-2];
        }
        cout << num[n] << endl;
    }
}