#include <bits/stdc++.h>
using namespace std;
long long n;
long long f[1005][1005][4];
bool vis[1005][1005][4];
long long dfs(long long x, long long y, long long k) {
  long long ans = 0;
  if (x == n && y == n) return 0;
  if (vis[x][y][k]) return f[x][y][k];
  if (k == 1) {
    if (x != n) {
      ans += dfs(x + 1, y, 2) + 1;
      if (y + 1 <= x) ans += dfs(x, y + 1, 1);
      ans %= 1000000007;
    } else {
      ans = dfs(x, y + 1, 2) + 1;
      ans %= 1000000007;
    }
  } else {
    if (x != n) ans += dfs(x + 1, y, 1);
    if (y + 1 <= x) ans += dfs(x, y + 1, 1);
    ans %= 1000000007;
  }
  vis[x][y][k] = 1;
  return f[x][y][k] = ans;
}
signed main() {
  cin >> n;
  cout << dfs(0, 0, 1);
  return 0;
}
