#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;
}