#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<set>
using namespace std;
int n,ox,oy,m[50][50];
struct per
{
    int x,y;
}a[50];
set< vector <int> >V;
pair<int,int>h[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;i<n;i++)
        {
            if(minx>a[i].x)minx=a[i].x;
            if(miny>a[i].y)miny=a[i].y;
        }
        for(int i=0;i<n;i++)
            h[i]=make_pair(a[i].x-minx,a[i].y-miny);
        sort(h,h+n);
        vector <int >curr;
        for(int i=0;i<n;i++)
        {
            curr.push_back(h[i].first);
            curr.push_back(h[i].second);
        }
        set < vector < int > > :: 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("%lld",r[n]);
    return 0;
}