#include<iostream>
using namespace std;
int f[100000];

struct node
{
    int born;
    int num;
}p[100000];
int main()
{
    int n;
    p[1].born=1;p[1].num=1;
    p[2].born=0;p[2].num=1;
    p[3].born=1;p[3].num=2;
    for(int i=4;i<=10;i++){
        p[i].num=p[i-1].num+p[i-2].num;
        if(i>=8){//不能生育的
                p[i].num=p[i].num-p[i-7].born;
                if(i>=9)p[i].num=p[i].num-p[i-8].born;
                if(i>=10)p[i].num=p[i].num-p[i-9].born;
        }
        p[i].born=p[i].num-p[i-1].num;
        if(i>=11)p[i].num-=p[i-10].born*2;//死亡的
        //cout<<i<<" "<<p[i].born<<" "<<p[i].num<<endl;
    }
    for(int i=11;i<=30000;i++){
        int sum=0;
        for(int j=i-6;j<=i-2;j++)
          sum+=p[j].born;
        p[i].born=sum;
        //cout<<i<<" "<<sum<<endl;
      p[i].num=p[i-1].num+sum-p[i-10].born;

    }
    while(cin>>n)
    cout<<p[n].num<<endl;
    return 0;
}