#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int num[100],t,n;
int check(int k)
{
for(int i=1;i<=k/3;i++) 
{
int flag=1;
for(int L=1;L<=i;L++) 
if(num[k-3*i+L]!=num[k-3*i+L+i]||num[k-3*i+L]!=num[k-3*i+L+i+i]) 
{
flag=0; 
break;
}
if(flag) { return 0;} 
}
return 1;  
}
void dfs(int step)
{
if(step>n)
{
t++;
return ;
}
for(int i=0;i<=1;i++)
{
num[step]=i;
if(check(step)) 
dfs(step+1);
}
}
int main()
{

scanf("%d",&n);
num[1]=0;
dfs(2);
printf("%d\n",t*2);

return 0;
}
/**************************************************************
	Problem: 1824
	User: admin
	Language: C++
	Result: Accepted
	Time:281 ms
	Memory:2076 kb
****************************************************************/