#include <bits/stdc++.h>
const int N = 1007, inf = 0x3f3f3f3f;
using namespace std;
const int M = 1000000007;
long long f[N][N][2];
int n;
long long solve(int a, int b, int x) {
  if (a == n and b == n) return 0;
  long long& st = f[a][b][x];
  if (st == -1) {
    if (x == 0) {
      if (a == n) {
        st = solve(a, b + 1, 1);
      } else if (a == b) {
        st = solve(a + 1, b, 1);
      } else {
        st = (solve(a + 1, b, 1) + solve(a, b + 1, 1)) % M;
      }
    } else {
      if (a == n) {
        st = max((1 + solve(a, b + 1, 0)) % M, solve(a, b + 1, 1));
      } else if (a == b) {
        st = max((1 + solve(a + 1, b, 0)) % M, solve(a + 1, b, 1));
      } else {
        st = max({(1 + solve(a + 1, b, 0) + solve(a, b + 1, 1)) % M,
                  (1 + solve(a + 1, b, 1) + solve(a, b + 1, 0)) % M,
                  solve(a, b, 0)});
      }
    }
  }
  return st;
}
int main() {
  memset(f, -1, sizeof f);
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  cout << solve(0, 0, 1) << endl;
}
