#include <bits/stdc++.h>
using namespace std;
pair<int, bool> dp[2002][2002];
pair<int, bool> DP(int deep, int bal) {
  if (deep == 0 && bal == 0) return pair<int, bool>(0, false);
  if (deep < 0 || bal < 0) return pair<int, bool>(0, false);
  if (dp[deep][bal] != pair<int, bool>(0, false)) return dp[deep][bal];
  pair<int, bool> c1(0, false), c2(0, false);
  if (bal > 0) {
    c1 = DP(deep - 1, bal - 1);
  }
  if (bal + 1 <= deep - 1) {
    c2 = DP(deep - 1, bal + 1);
  }
  dp[deep][bal].first = (c1.first + c2.first) % ((int)1e9 + 7);
  if (c1.second == false && c2.second == false)
    dp[deep][bal].second = true,
    dp[deep][bal].first = (dp[deep][bal].first + 1) % ((int)1e9 + 7);
  else
    dp[deep][bal].second = false;
  return dp[deep][bal];
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i <= 2 * n; i++)
    fill(dp[i], dp[i] + 2002, pair<int, bool>(0, false));
  cout << DP(2 * n, 0).first << '\n';
  return 0;
}
