/*
*/

//#pragma comment(linker, "/STACK:16777216")
#define _CRT_SECURE_NO_WARNINGS

#include <fstream>
#include <iostream>
#include <string>
#include <complex>
#include <math.h>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <stdio.h>
#include <stack>
#include <algorithm>
#include <list>
#include <ctime>
#include <memory.h>
#include <assert.h>

#define y0 sdkfaslhagaklsldk
#define y1 aasdfasdfasdf
#define yn askfhwqriuperikldjk
#define j1 assdgsdgasghsf
#define tm sdfjahlfasfh
#define lr asgasgash
#define norm asdfasdgasdgsd

#define eps 1e-9
#define M_PI 3.141592653589793
#define bs 1000000007
#define bsize 256

using namespace std;

const int N = 120000;

vector<vector<pair<int, int> > > ways[100];
vector<pair<int, int> > cur;
int dx[10], dy[10];
set<vector<pair<int, int> > > S[100];
vector<pair<int, int> > compress(vector<pair<int, int> > v)
{
	sort(v.begin(), v.end());
	for (int i = v.size() - 1; i >= 0; --i)
	{
		v[i].first -= v[0].first;
		v[i].second -= v[0].second;
	}
	return v;
}

void dfs(int ci, int cj)
{
	if (cur.size() > 0)
		ways[cur.size()].push_back(cur);

	if (cur.size() > 13)
		return;

	for (int i = 0; i < 4; i++)
	{
		int ni = ci + dx[i];
		int nj = cj + dy[i];
		bool bad = 0;
		for (int j = 0; j < cur.size(); j++)
		{
			if (cur[j].first == ni&&cur[j].second == nj)
				bad = 1;
		}
		if (bad)
			continue;
		cur.push_back(make_pair(ni, nj));
		dfs(ni, nj);
		cur.pop_back();
	}
}

int main(){
	//freopen("fabro.in","r",stdin);
	//freopen("fabro.out","w",stdout);
	//freopen("F:/in.txt", "r", stdin);
	//freopen("F:/output.txt", "w", stdout);
	ios_base::sync_with_stdio(0);
	//cin.tie(0);
	
	dx[0] = -1;
	dx[2] = 1;
	dy[1] = -1;
	dy[3] = 1;
	/*
	dfs(0, 0);

	for (int i = 1; i <= 13; i++)
	{
		for (int j = 0; j < ways[i].size(); j++)
		{
			ways[i][j] = compress(ways[i][j]);
			S[i].insert(ways[i][j]);
		}
		cout << "memo[" << i << "]=" << S[i].size() << ";\n";
//		cout << i << " " << S[i].size() << endl;
	}
	*/
	int memo[100];

	memo[1] = 1;
	memo[2] = 2;
	memo[3] = 6;
	memo[4] = 15;
	memo[5] = 42;
	memo[6] = 112;
	memo[7] = 308;
	memo[8] = 825;
	memo[9] = 2255;
	memo[10] = 6026;
	memo[11] = 16386;
	memo[12] = 43700;
	memo[13] = 118334;

	int n;
	cin >> n;
	cout << memo[n] << endl;

	cin.get(); cin.get();
	return 0;
}