#include <bits/stdc++.h>
using namespace std;
int n;
int memo[2005][1005];
int dp(int length, int open) {
  if (memo[length][open] != -1) {
    return memo[length][open];
  }
  int close = length - open;
  if (length == 2 * n) {
    return memo[length][open] = 0;
  }
  if (length % 2 == 1) {
    if (open == n) {
      return memo[length][open] = (dp(length + 1, open) + 1) % 1000000007;
    } else if (open - close > 0) {
      return memo[length][open] =
                 (dp(length + 1, open) + dp(length + 1, open + 1) + 1) %
                 1000000007;
    } else {
      return memo[length][open] = (dp(length + 1, open + 1) + 1) % 1000000007;
    }
  } else {
    if (open == n) {
      return memo[length][open] = (dp(length + 1, open)) % 1000000007;
    } else if (open - close > 0) {
      return memo[length][open] =
                 (dp(length + 1, open) + dp(length + 1, open + 1)) % 1000000007;
    } else {
      return memo[length][open] = (dp(length + 1, open + 1)) % 1000000007;
    }
  }
}
int main() {
  scanf("%d", &n);
  memset(memo, -1, sizeof(memo));
  printf("%d", dp(0, 0));
}
