#include #include #include #include #include using namespace std; int n,ox,oy,m[50][50]; struct per { int x,y; }a[50]; set< vector >V; pairh[50]; long long ras,cate,r[20]; const int dx[4]={0,1,0,-1}; const int dy[4]={1,0,-1,0}; void bck(int k,int i,int j) { if(k==n-1) { int minx=ox; int miny=oy; for(int i=0;ia[i].x)minx=a[i].x; if(miny>a[i].y)miny=a[i].y; } for(int i=0;icurr; for(int i=0;i > :: iterator it = V.find (curr); if(it==V.end()) { ras++; V.insert(curr); } return ; } int nx,ny; for(int o=0;o<4;o++) { nx=i+dx[o]; ny=j+dy[o]; if(m[nx][ny]==0) { m[nx][ny]=1; a[k+1].x=nx; a[k+1].y=ny; bck(k+1,nx,ny); m[nx][ny]=0; } } } int main() { //freopen("input","r",stdin); //freopen("output","w",stdout); scanf("%d",&n); /*for(n=1;n<=13;n++) { ras=0; ox=15; oy=15; a[0].x=ox; a[0].y=oy; m[ox][oy]=1; bck(0,ox,oy); V.clear(); printf("ras[%d]=%d;\n",n,ras); }*/ r[1]=1; r[2]=2; r[3]=6; r[4]=15; r[5]=42; r[6]=112; r[7]=308; r[8]=825; r[9]=2255; r[10]=6026; r[11]=16386; r[12]=43700; r[13]=118334; printf("%d",r[n]); return 0; }