#include<bits/stdc++.h>
using namespace std;
#define maxn 2005
#define ll long long
#define mod 1000000007
ll n,dp[maxn][maxn];
int dfs(int i,int j){
if(dp[i][j]!=-1)return dp[i][j];
if(i==0){//长度为0时,差值也要为0
if(j==0)return dp[i][j]=0;
else return dp[i][j]=-2;
}
if(i<j || j<0)return dp[i][j]=-2;
int flag=0;
ll res1=dfs(i-1,j+1),res2=dfs(i-1,j-1);
if(res1>=0)flag++;else res1=0;
if(res2>=0)flag++;else res2=0;
dp[i][j]=(res1+res2+(i%2==0)*flag)%mod;
if(flag)return dp[i][j];
return dp[i][j]=-2;
}
int main(){
cin>>n;
memset(dp,-1,sizeof dp);
cout<<dfs(2*n,0)<<endl;
// cout<<dp[5][1]<<endl;
}