#include<bits/stdc++.h>
using namespace std;
long long F[56];

//感觉就是变相的fib数列
//其实就是让我们转移方程
//F[i]=F[i-1]+F[i-3],意义和“永生的兔子”差不多 

//客人这个和“永生的兔子” 一样,相当于也是1天的成熟期
//转移方程是fib[i]=fib[i-1]+fib[i-2],原因,fib[i-2]的到i就全部成熟了,可以带来
//客人fib[i-2]个,而且现在还没有算他们本身和他们带来的没有成熟的客人,也就是fib[i-1] 
//好在没有溢出,永生的兔子是fib数列 

void init()
{
    F[1]=1;
    F[2]=2;
    F[3]=3;
    F[4]=4;
    for(int i=5;i<56;++i)
    {
        F[i]=F[i-1]+F[i-3]; 
    }
}

int main()
{
    init();
    int n;
    while(~scanf("%d",&n))
    {

        printf("%lld\n",F[n]);
    } 


    return 0;
}