#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline T read() {
  T x = 0, f = 1;
  char c = getchar();
  while (!isdigit(c)) {
    if (c == '-') f = -f;
    c = getchar();
  }
  while (isdigit(c)) {
    x = (x << 3) + (x << 1) + (c - 48);
    c = getchar();
  }
  return x * f;
}
const int inf = 1e9 + 1e7;
const int MAXN = 2e5 + 1e1;
const long long int Mod = 1e9 + 7;
long long int fac[MAXN];
long long int inv[MAXN];
int n;
long long int C(int A, int B) {
  return (A < B ? 0 : (((fac[A] * inv[B]) % Mod) * inv[A - B]) % Mod);
}
long long int qpow(long long int A, int B) {
  long long int res = 1;
  while (B > 0) {
    if (B & 1) (res *= A) %= Mod;
    (A *= A) %= Mod;
    B >>= 1;
  }
  return res;
}
int main(void) {
  scanf("%d", &n);
  fac[0] = inv[0] = 1;
  for (int i = 1; i <= (n << 1); i++) fac[i] = (fac[i - 1] * i) % Mod;
  inv[n << 1] = qpow(fac[n << 1], Mod - 2);
  for (int i = n << 1; i; i--) inv[i - 1] = (inv[i] * i) % Mod;
  printf("%lld\n", (((C((n << 1) - 1, n) << 1) % Mod) - n + Mod) % Mod);
  return 0;
}
