#include<iostream>
using namespace std;
int main(void)
{
int n,i;
long long s[50];
s[0]=3,s[1]=6,s[2]=6;
for(i=3;i<51;++i)
s[i]=s[i-1]+2*s[i-2];
while(cin>>n)
{
cout<<s[n-1]<<endl;
}
}
/*【动态规划】
:把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,
逐个求解,创立了解决这类过程优化问题的新方法——动态规划。
f(n)为n个格子的方法数目,假设第n-1个格子的颜色跟第1个相同,
因为第n-1个格子颜色已确定,第n个格子可以涂的颜色有两种,
故为2*f(n-2);第n-1个格子的颜色跟第1个不相同时,
f(n)=f(n-1);所以动态方程为f(n)=f(n-1)+2*f(n-2);
*/