#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(),(x).end() #define rep(i,m,n) for(int i = m;i < n;++i) #define pb push_back #define fore(i,a) for(auto &i:a) #define rrep(i,m,n) for(int i = m;i >= n;--i) #define INF INT_MAX/2 using namespace std; using ll = long long; using R = double; using Data = pair>; const ll MOD = 1e9 + 7; const ll inf = 1LL << 50; struct edge { ll from; ll to; ll cost; }; int n; int memo[50][50]; int main() { cin >> n; memo[0][0] = 1; rep(i, 0, 2 * n)rep(j, 0, 45) { if (j > 0) { memo[i + 1][j - 1] += memo[i][j]; memo[i + 1][j + 1] += memo[i][j]; } else { memo[i + 1][j + 1] += memo[i][j]; } } cout << memo[2*n][0] << endl; return 0; }