#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
long long mul_inv(long long a, long long b) {
  long long b0 = b, t, q;
  long long x0 = 0, x1 = 1;
  if (b == 1) return 1;
  while (a > 1) {
    q = a / b;
    t = b, b = a % b, a = t;
    t = x0, x0 = x1 - q * x0, x1 = t;
  }
  if (x1 < 0) x1 += b0;
  return x1;
}
long long fac[2000050];
long long invfac[2000050];
long long po2[2000050];
long long n;
long long X[2000050];
int main() {
  int i, j, k;
  fac[0] = 1;
  po2[0] = 1;
  cin >> n;
  int N = n;
  for (i = 1; i <= 2 * n; i++) fac[i] = fac[i - 1] * i, fac[i] %= 1000000007;
  for (i = 0; i <= 2 * n; i++) invfac[i] = mul_inv(fac[i], 1000000007);
  for (i = 1; i <= 2 * N; i++) po2[i] = (po2[i - 1] * 2) % 1000000007;
  for (i = n; i < 2 * n; i++)
    X[i + 1] = (2 * X[i] + (fac[i] * invfac[n]) % 1000000007 * invfac[i - n]) %
               1000000007;
  long long ans = 0;
  for (i = 0; i <= 2 * N; i++) ans += po2[i] - 2 * X[i];
  ans %= 1000000007;
  ans += 1000000007;
  ans %= 1000000007;
  printf("%lld", ans);
  return 0;
}
