#include<iomanip>
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<map>
#include<set>
#include<queue>
#include<algorithm>

using namespace std;

int ans[20];
/*int sol, N, a[109], x[109], y[109];
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
set < vector < int > > S;
pair < int , int > h[109];

void back (int pos)
{
    if (pos == N)
    {
        x[1] = y[1] = 0;
        for (int i=2; i<=N; i++)
            x[i] = x[i - 1] + dx[a[i - 1]], y[i] = y[i - 1] + dy[a[i - 1]];
        int minx = 0, miny = 0;
        for (int i=1; i<=N; i++)
        {
            if (x[i] < minx) minx = x[i];
            if (y[i] < miny) miny = y[i];
        }
        for (int i=1; i<=N; i++)
            x[i] -= minx, y[i] -= miny, h[i] = make_pair (x[i], y[i]);
        vector < int > curr;
        sort (h + 1, h + N + 1);
        bool ok = 1;
        for (int i=2; i<=N; i++)
            if (h[i] == h[i - 1]) ok = 0;
        if (ok == 0) return;
        for (int i=1; i<=N; i++)
            curr.push_back (h[i].first), curr.push_back (h[i].second);
        set < vector < int > > :: iterator it = S.find (curr);
        if (it == S.end ())
        {
            sol ++;
            S.insert (curr);
        }
        return ;
    }
    for (int i=0; i<4; i++)
        a[pos] = i, back (pos + 1);
}*/

int main()
{
//freopen ("input", "r", stdin);
//freopen ("output", "w", stdout);

ans[1] = 1;
ans[2] = 2;
ans[3] = 6;
ans[4] = 15;
ans[5] = 42;
ans[6] = 112;
ans[7] = 308;
ans[8] = 825;
ans[9] = 2255;
ans[10] = 6026;
ans[11] = 16386;
ans[12] = 43700;
ans[13] = 118334;
int N;
scanf ("%d", &N);
printf ("%d\n", ans[N]);

return 0;
}