//tonynater - Brilliant 2013
#include <algorithm>
#include <bitset>
#include <cassert>
#include <cmath>
#include <ctime>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
#define sz(x) ((int) x.size())
typedef long double ld;
typedef long long ll;
typedef pair<int, int> pii;
const double pi = acos(-1);
const double tau = 2*pi;
const double epsilon = 1e-6;
const int MAX_N = 45;
ll dp[MAX_N][MAX_N];
ll nSeq(int len, int val)
{
if(val < 0 || val > MAX_N) return 0;
else if(dp[len][val] != -1) return dp[len][val];
else return (dp[len][val] = nSeq(len-1, val+1) + nSeq(len-1, val-1));
}
int main (int argc, const char * argv[])
{
ios_base::sync_with_stdio(0);
cin.tie(NULL);
fill_n(&dp[0][0], MAX_N*MAX_N, -1);
dp[0][0] = 1;
for(int i = 1; i < MAX_N; i++)
dp[0][i] = 0;
cout << nSeq(40, 0) << '\n';
return 0;
}
Ly90b255bmF0ZXIgLSBCcmlsbGlhbnQgMjAxMwoKI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGJpdHNldD4KI2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgc3ooeCkgKChpbnQpIHguc2l6ZSgpKQoKdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwoKY29uc3QgZG91YmxlIHBpID0gYWNvcygtMSk7CmNvbnN0IGRvdWJsZSB0YXUgPSAyKnBpOwpjb25zdCBkb3VibGUgZXBzaWxvbiA9IDFlLTY7Cgpjb25zdCBpbnQgTUFYX04gPSA0NTsKCmxsIGRwW01BWF9OXVtNQVhfTl07CmxsIG5TZXEoaW50IGxlbiwgaW50IHZhbCkKewoJaWYodmFsIDwgMCB8fCB2YWwgPiBNQVhfTikgcmV0dXJuIDA7CgllbHNlIGlmKGRwW2xlbl1bdmFsXSAhPSAtMSkgcmV0dXJuIGRwW2xlbl1bdmFsXTsKCWVsc2UgcmV0dXJuIChkcFtsZW5dW3ZhbF0gPSBuU2VxKGxlbi0xLCB2YWwrMSkgKyBuU2VxKGxlbi0xLCB2YWwtMSkpOwp9CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKE5VTEwpOwogICAgCglmaWxsX24oJmRwWzBdWzBdLCBNQVhfTipNQVhfTiwgLTEpOwoKICAgIGRwWzBdWzBdID0gMTsKCWZvcihpbnQgaSA9IDE7IGkgPCBNQVhfTjsgaSsrKQoJCWRwWzBdW2ldID0gMDsKCQkKCWNvdXQgPDwgblNlcSg0MCwgMCkgPDwgJ1xuJzsgICAgCgogICAgcmV0dXJuIDA7Cn0K