#include <bits/stdc++.h>
int dp[30][30];
int solve(int n, int m) {
  if (n == 0) {
    dp[0][m] = m + 1;
    return m + 1;
  }
  if (m == 0) {
    dp[n][0] = n + 1;
    return n + 1;
  }
  if (dp[n][m] != -1) {
    return dp[n][m];
  }
  dp[n][m] = 1 + solve(n - 1, m) + solve(n, m - 1);
  return dp[n][m];
}
long long int fat(int n) {
  long long int r = 1;
  while (n > 1) {
    r *= n;
    r %= 1000000007LL;
    n--;
  }
  return r;
}
long long int gcd(long long int a, long long int b, long long int &x,
                  long long int &y) {
  if (!b) {
    x = 1;
    y = 0;
    return a;
  }
  long long int d = gcd(b, a % b, y, x);
  y -= (a / b) * x;
  return d;
}
long long int inv(long long int a) {
  long long int x, y;
  gcd(a, 1000000007LL, x, y);
  x = (x % 1000000007LL + 1000000007LL) % 1000000007LL;
  return x;
}
int main(void) {
  int n;
  scanf(" %d", &n);
  n++;
  long long int num = fat(n + n);
  long long int den = fat(n);
  long long int aux = inv(den);
  long long int r = (num * aux) % 1000000007LL;
  r = (r * aux) % 1000000007LL;
  r = (r - 1 + 1000000007LL) % 1000000007LL;
  printf("%lld\n", r);
  return 0;
}
