#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const unsigned long long MAX = LONG_MAX;
unsigned long long in() {
  unsigned long long a;
  scanf("%llu", &a);
  return a;
}
double din() {
  double a;
  scanf("%lf", &a);
  return a;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a / gcd(a, b)) * b; }
int lastDigitSum(unsigned long long a, unsigned long long b) {
  return (a % 10) + (b % 10);
}
int binaryCal(int dn) {
  if (dn == 0)
    return 0;
  else
    return (dn % 2 + 10 * binaryCal(dn / 2));
}
long long findBinary(long long decimal) {
  if (decimal == 0)
    return 0;
  else
    return (decimal % 2 + 10 * findBinary(decimal / 2));
}
long long fact(int n) {
  if (n <= 1)
    return 1;
  else
    return n * fact(n - 1);
}
void fasterIO() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
unsigned long long xfac(unsigned long long n, unsigned long long x) {
  return (((unsigned long long)pow(n, x)) % (((unsigned long long)pow(2, 32))));
}
int main() {
  int a, sum = 0;
  int arr[100][100];
  cin >> a;
  int i, j;
  for (i = 0; i < a; i++) {
    for (j = 0; j < a; j++) {
      if ((j == 0 && j == 0) || (j == 0 && i != 0) || (j != 0 && i == 0))
        arr[i][j] = 1;
      else {
        arr[i][j] = arr[i][j - 1] + arr[i - 1][j];
      }
    }
  }
  cout << arr[i - 1][j - 1] << endl;
  return 0;
}
