#include <bits/stdc++.h>
using namespace std;
constexpr int N = 2e6 + 1;
constexpr long long inf = LLONG_MAX;
constexpr long long MOD = 1e9 + 7;
constexpr double PI = 3.14159265359;
long long C[N], K[N], INV[N];
vector<long long> degs;
long long fastpow(long long el) {
  long long ans = 1, i = 0;
  vector<long long> d;
  d.push_back(el);
  while (i < 32) {
    el = (el * el) % MOD;
    d.push_back(el);
    i++;
  }
  for (long long j = 0; j < degs.size(); j++) {
    if (degs[j]) {
      ans = (ans * d[j]) % MOD;
    }
  }
  return ans;
}
long long inv(long long el) { return fastpow(el); }
long long kf(long long el, long long n) {
  long long ans = (C[el] * INV[n]) % MOD;
  ans = (ans * INV[el - n]) % MOD;
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  long long n, ans = 1, deg = 1, ch = 1, id = 0, dop = MOD - 2;
  cin >> n;
  while (dop) {
    degs.push_back(dop % 2);
    dop /= 2;
  }
  C[0] = 1;
  for (long long i = 1; i <= 2 * n; i++) {
    C[i] = (C[i - 1] * i) % MOD;
  }
  for (long long i = 0; i <= n; i++) {
    INV[i] = inv(C[i]);
  }
  for (long long i = n; i <= 2 * n; i++) {
    K[i] = kf(i, n);
  }
  for (long long i = 1; i < 2 * n; i++) {
    if (i <= n) {
      deg = (deg * 2) % MOD;
    } else {
      id++;
      deg = (deg - ch + MOD) % MOD;
      deg = ((long long)2 * deg) % MOD;
      ch = K[n + id];
    }
    ans = (ans + deg) % MOD;
  }
  ans = (ans + deg) % MOD;
  cout << ans;
  return 0;
}
