#include <bits/stdc++.h>
using namespace std;
const int M = 1e9 + 7;
const int MAX_N = 1002;
int dp_end[MAX_N][MAX_N];
int dp_not[MAX_N][MAX_N];
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    dp_end[0][i] = (i + 1) / 2;
    dp_not[0][i] = i / 2;
  }
  for (int i = 1; i <= n; i++) {
    for (int j = i; j <= n; j++) {
      dp_end[i][j] = 1 + dp_not[i - 1][j] + dp_end[i][j - 1];
      if (i - 1 >= j) {
        dp_end[i][j] =
            max(dp_end[i][j], 1 + dp_not[i][j - 1] + dp_end[i - 1][j]);
      }
      dp_end[i][j] %= M;
      dp_not[i][j] = dp_end[i][j - 1] + dp_end[i - 1][j];
      dp_not[i][j] %= M;
    }
  }
  cout << dp_end[n][n] << endl;
  return 0;
}
