#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long memo[2005][2005][2];
long long solve(int d, int h, bool con) {
  if (d == 0) return 0;
  if (memo[d][h][con] != -1) return memo[d][h][con];
  long long ret = 0;
  if (d - h >= 2) {
    if (h > 0) {
      if (!con) {
        ret = max(ret, 1 + max((solve(d - 1, h + 1, 1) % mod +
                                solve(d - 1, h - 1, 0) % mod) %
                                   mod,
                               (solve(d - 1, h + 1, 0) % mod +
                                solve(d - 1, h - 1, 1) % mod) %
                                   mod));
        ret %= mod;
      }
      ret = max(
          ret,
          (solve(d - 1, h + 1, 0) % mod + solve(d - 1, h - 1, 0) % mod) % mod);
      ret %= mod;
    } else {
      if (!con) {
        ret = max(ret, 1 + solve(d - 1, h + 1, 1) % mod);
        ret %= mod;
      }
      ret = max(ret, solve(d - 1, h + 1, 0) % mod);
      ret %= mod;
    }
  } else if (d == h) {
    if (!con) {
      ret = max(ret, 1 + solve(d - 1, h - 1, 1) % mod);
      ret %= mod;
    }
    ret = max(ret, solve(d - 1, h - 1, 0) % mod);
    ret %= mod;
  } else
    ret = 0;
  return memo[d][h][con] = ret % mod;
}
int main() {
  int n;
  cin >> n;
  memset(memo, -1, sizeof(memo));
  cout << max(solve(2 * n - 1, 1, 1) % mod, solve(2 * n - 1, 1, 0) % mod) % mod
       << endl;
  return 0;
}
