#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 20, K = 19;
const int mod = 1e9 + 7;
int dp[2010][1010][2];
int n;
bool ck(int i, int j, int lvl) {
  if (j < 0 || j > n || dp[i][j][lvl] == -1) return 0;
  return 1;
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++)
    for (int j = 0; j < 2; j++) dp[2 * n][i][j] = -1;
  for (int i = 2 * n - 1; i >= 0; i--) {
    for (int j = n; j >= 0; j--) {
      long long q0 = -1;
      if (ck(i + 1, j + 1, 1)) {
        q0 = dp[i + 1][j + 1][1] + 1;
        if (ck(i + 1, j - 1, 0)) q0 += dp[i + 1][j - 1][0];
        q0 %= mod;
      } else if (ck(i + 1, j - 1, 1)) {
        q0 = dp[i + 1][j - 1][1] + 1;
        if (ck(i + 1, j + 1, 0)) q0 += dp[i + 1][j + 1][0];
        q0 %= mod;
      }
      dp[i][j][0] = q0;
      long long q1 = -1;
      if (ck(i + 1, j + 1, 0) || ck(i + 1, j - 1, 0)) {
        q1 = 0;
        if (ck(i + 1, j + 1, 0)) q1 += dp[i + 1][j + 1][0];
        if (ck(i + 1, j - 1, 0)) q1 += dp[i + 1][j - 1][0];
        q1 %= mod;
      }
      dp[i][j][1] = q1;
    }
  }
  cout << dp[0][0][0];
  return 0;
}
