#include <bits/stdc++.h>
using namespace std;
const int dir[4][2] = {1, 0, 0, 1, -1, 0, 0, -1};
const int N = 2e6 + 10;
const int mod = 1e9 + 7;
const double pi = acos(-1);
const int INF = 0x3f3f3f3f;
long long n, m, K;
long long qpow(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
    b >>= 1;
  }
  return res;
}
long long fac[N], inv[N];
long long C(long long n, long long m) {
  if (n < m) return 0;
  return fac[n] * inv[m] % mod * inv[n - m] % mod;
}
void init() {
  fac[0] = inv[0] = 1;
  for (int i = 1; i < N; ++i) {
    fac[i] = fac[i - 1] * i % mod;
    inv[i] = inv[i - 1] * qpow(i, mod - 2) % mod;
  }
}
int main() {
  ios::sync_with_stdio(0);
  init();
  cin >> n;
  long long ans = 1, tmp = 1;
  for (int i = 2; i <= n; ++i) {
    tmp = tmp * 2 % mod;
    ans = (ans + tmp) % mod;
  }
  for (int i = n + 1; i <= 2 * n; ++i) {
    tmp = (tmp * 2 % mod - C(i - 1, n) + mod) % mod;
    ans = (ans + tmp) % mod;
  }
  cout << (2 * ans % mod + 1) % mod << endl;
  return 0;
}
