#include <bits/stdc++.h>
using namespace std;
long long step = 1000000000;
long long tiv[1000000] = {};
long long currentIndex = 0;
void superDif(long long m) {
  long long tIndex = 0;
  tiv[tIndex] -= m;
  while (tiv[tIndex] < 0) {
    while (tiv[tIndex] < 0) {
      tiv[tIndex] += step;
      tiv[tIndex + 1]--;
    }
    tIndex++;
  }
  while (tiv[currentIndex] == 0 && currentIndex > 0) {
    currentIndex--;
  }
}
void superMult(long long m) {
  for (long long i = currentIndex; i >= 0; i--) {
    tiv[i] *= m;
    long long tIndex = i;
    while (tiv[tIndex] >= step) {
      tiv[tIndex + 1] += (tiv[tIndex] / step);
      tiv[tIndex] = tiv[tIndex] % step;
      tIndex++;
      if (tIndex > currentIndex) currentIndex = tIndex;
    }
  }
}
long long superDiv(long long m) {
  long long r = 0;
  for (long long i = currentIndex; i >= 0; i--) {
    long long nor = (r * step + tiv[i]) / m;
    r = (r * step + tiv[i]) % m;
    tiv[i] = nor;
    if (i == currentIndex && nor == 0 && currentIndex > 0) {
      currentIndex--;
    }
  }
  return r;
}
void superPrint() {
  for (long long i = currentIndex; i >= 0; i--) {
    long long s = step;
    while (i < currentIndex && tiv[i] < s / 10) {
      cout << 0;
      s /= 10;
    }
    cout << tiv[i];
  }
}
int main() {
  long long N;
  cin >> N;
  long long k = N;
  long long n = 2 * N - 1;
  long long parzer[100000];
  long long parzerCount = 0;
  long long baj[200000] = {};
  for (long long i = 2; i <= 200000; i++) {
    bool add = true;
    for (long long j = 2; j <= sqrt(i); j++) {
      if (i % j == 0) {
        add = false;
        break;
      }
    }
    if (add) {
      parzer[parzerCount] = i;
      parzerCount++;
    }
  }
  for (long long i = k + 1; i <= n; i++) {
    long long t = i;
    for (long long j = 0; parzer[j] <= sqrt(i); j++) {
      while (t % parzer[j] == 0) {
        baj[parzer[j]]++;
        t /= parzer[j];
      }
    }
    baj[t]++;
  }
  for (long long i = 2; i <= n - k; i++) {
    long long t = i;
    for (long long j = 0; parzer[j] <= sqrt(i); j++) {
      while (t % parzer[j] == 0) {
        baj[parzer[j]]--;
        t /= parzer[j];
      }
    }
    baj[t]--;
  }
  tiv[0] = 1;
  for (int i = 2; i < 200000; i++) {
    for (int j = 0; j < baj[i]; j++) superMult(i);
  }
  superMult(2);
  superDif(N);
  long long r = superDiv(1000000007);
  cout << r;
  return 0;
}
