#include <bits/stdc++.h>
long long n, f[200010];
long long xxx(long long x) {
  return (x % 1000000007 + 1000000007) % 1000000007;
}
void ex_gcd(long long a, long long b, long long& d, long long& x,
            long long& y) {
  if (b == 0) {
    d = a;
    x = 1;
    y = 0;
    return;
  } else {
    ex_gcd(b, a % b, d, y, x);
    y -= a / b * x;
  }
}
long long NI(long long a) {
  long long d, x, y;
  ex_gcd(a, 1000000007, d, x, y);
  return xxx(x);
}
int main() {
  f[1] = 1;
  for (long long i = 2; i < 200010; ++i)
    f[i] = (long long)f[i - 1] * i % 1000000007;
  while (scanf("%d", &n) != EOF) {
    if (n == 1) {
      puts("1");
      continue;
    }
    long long ni = NI((long long)f[n - 1] * f[n] % 1000000007);
    long long ans = f[2 * n - 1];
    ans = (long long)ans * ni % 1000000007;
    ans = 2 * ans - n;
    printf("%I64d\n", xxx(ans));
  }
  return 0;
}
