#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
****************************************************************/