#include<iostream>
using namespace std;
#define m %100000007
unsigned long long C(unsigned long long x){
if(x==1) return 1;
if(x==2) return 2;
return C(x-1)m*(4*x-2)m/(x+1)m;
}
int main(){
unsigned long long n;
cin >> n;
cout << C(n);
return 0;
}
#include <iostream>
using namespace std;
unsigned long long Catalan(unsigned long long n){
if(n <= 1) return 1;
unsigned long long h[n+1];
h[0] = h[1] = 1;
for(unsigned long long i = 2; i <= n; i++){
h[i] = 0;
for(unsigned long long j = 0; j < i; j++){
h[i] += (h[j] * h[i-1-j]) % 100000007;
}
}
return h[n] % 100000007;
}
int main(){
unsigned long long n;
cin >> n;
printf("%d",Catalan(n));
}
都rt了。