#include <bits/stdc++.h>
using namespace std;
long long pw(long long n, long long k) {
  long long ret = 1;
  while (k > 0) {
    if (k & 1) ret = ret * n % 1000000007;
    k >>= 1;
    n = n * n % 1000000007;
  }
  return ret;
}
long long euclid(long long a) {
  long long pr = a, r = 1000000007;
  long long ps = 1, s = 0;
  while (r != 0) {
    long long q = pr / r, h;
    h = r;
    r = pr - q * r;
    pr = h;
    h = s;
    s = ps - q * s;
    ps = h;
  }
  ps %= 1000000007;
  if (ps < 0) ps += 1000000007;
  return ps;
}
long long f[2 * 1000001], g[2 * 1000001];
long long c(int k, int n) {
  return f[n] * g[k] % 1000000007 * g[n - k] % 1000000007;
}
int main() {
  long long n, ret, i, a;
  f[0] = g[0] = 1;
  for (i = 1; i < 2 * 1000001; i++) {
    f[i] = (i * f[i - 1]) % 1000000007;
    g[i] = euclid(i) * g[i - 1] % 1000000007;
  }
  scanf("%I64d", &n);
  ret = pw(2, n + 1) - 1;
  a = pw(2, n);
  for (i = n; i < 2 * n - 1; i++) {
    a = (2 * a - 2 * c(n, i)) % 1000000007;
    ret = (ret + a) % 1000000007;
  }
  ret = (ret + a) % 1000000007;
  if (ret < 0) ret += 1000000007;
  printf("%I64d", ret);
  return 0;
}
