#include <bits/stdc++.h>
using namespace std;
vector<long long> prime;
long long cnt1[200005], cnt2[200005], cntans[200005], mod = 1e9 + 7;
bool _prime(long long x) {
  long long p = sqrt(x);
  for (long long i = 2; i <= p; i++)
    if (x % i == 0) return false;
  return true;
}
void fact(long long x, long long num) {
  for (long long i = 0; i < prime.size(); i++) {
    while (x % prime[i] == 0) {
      x /= prime[i];
      if (num == 1)
        cnt1[prime[i]]++;
      else
        cnt2[prime[i]]++;
    }
    if (x == 1) break;
    if (prime[i] * prime[i] > x) {
      if (num == 1)
        cnt1[x]++;
      else
        cnt2[x]++;
      break;
    }
  }
}
long long binpow(long long base, long long step) {
  if (step == 0) return 1;
  if (step % 2 == 0) {
    long long t = ((binpow(base, step / 2)) % mod);
    return ((t * t) % mod);
  } else
    return (((binpow(base, step - 1) % mod) * base) % mod);
}
int main() {
  long long n, i, j;
  cin >> n;
  for (i = 2; i <= 2 * n; i++)
    if (_prime(i)) prime.push_back(i);
  for (i = 2 * n - 1; i >= 2 * n - n + 1; i--) fact(i, 1);
  for (i = 2; i < n; i++) fact(i, 2);
  for (i = 0; i < prime.size(); i++)
    cntans[prime[i]] = cnt1[prime[i]] - cnt2[prime[i]];
  long long ans = 1;
  for (i = 2; i <= 2 * n; i++) {
    if (cntans[i] > 0) {
      ans *= binpow(i, cntans[i]);
    }
    ans %= mod;
  }
  cout << (2 * ans) % mod - n;
  return 0;
}
