/** mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm **\
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* *
* Code by : deH *
* ~ILS~ *
* just a little star *
* *
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\** mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm **/
#include <bits/stdc++.h>
#define ll long long
#define f first
#define s second
const ll mod = 1000000007;
using namespace std;
ll dem;
ll f[1000005];
ll nad(ll a,ll b){
if(b == 0)return 1;
if(b == 1)return a%mod;
ll k = nad(a,b/2)%mod;
if(b % 2 == 0)return (k*k)%mod;
else return ((k*k)%mod*a)%mod;
}
ll b[1000005];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
if(fopen("deH.INP","r")){
freopen("deH.INP","r",stdin);
freopen("deH.OUT","w",stdout);
}
int n;cin >> n;
f[0] = 1;
for(int i = 1;i <= n;i++){
f[i] = f[i-1]*i;
f[i] %= mod;
}
for(int i = 0;i <= n;i++){
ll kx = (f[i]*f[n-i])%mod;
kx = nad(kx,mod-2);
kx *= f[n];
kx %= mod;
//kx là chap i cua n
ll kz = nad(2,n-i);
kz *= f[n-i];
kz = nad(kz,mod-2);
kz *= f[2*(n-i)]%mod;
if(i % 2 == 0){
dem += (kx*kz)%mod;
dem %= mod;
}
else{
dem -= (kx*kz)%mod;
dem = (dem+mod)%mod;
}
dem %= mod;
}
cout << dem%mod;
return 0;
}
/** that's all **/
LyoqICAgbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0gICAqKlwKICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogICogICAgQ29kZSBieSA6IGRlSCAgICAgICAgICAgICAgICAgICAgICAgICoKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+SUxTfiAgICAgICAqCiAgKiAgICBqdXN0IGEgbGl0dGxlIHN0YXIgICAgICAgICAgICAgICAgICAgKgogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ClwqKiAgIG1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tICAgKiovCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZApjb25zdCBsbCBtb2QgPSAxMDAwMDAwMDA3Owp1c2luZyBuYW1lc3BhY2Ugc3RkOwpsbCBkZW07CmxsIGZbMTAwMDAwNV07CmxsIG5hZChsbCBhLGxsIGIpewogICAgaWYoYiA9PSAwKXJldHVybiAxOwogICAgaWYoYiA9PSAxKXJldHVybiBhJW1vZDsKICAgIGxsIGsgPSBuYWQoYSxiLzIpJW1vZDsKICAgIGlmKGIgJSAyID09IDApcmV0dXJuIChrKmspJW1vZDsKICAgIGVsc2UgcmV0dXJuICgoayprKSVtb2QqYSklbW9kOwp9CmxsIGJbMTAwMDAwNV07CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBpZihmb3BlbigiZGVILklOUCIsInIiKSl7CiAgICAgICAgZnJlb3BlbigiZGVILklOUCIsInIiLHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJkZUguT1VUIiwidyIsc3Rkb3V0KTsKICAgIH0KICAgIGludCBuO2NpbiA+PiBuOwogICAgZlswXSA9IDE7CiAgICBmb3IoaW50IGkgPSAxO2kgPD0gbjtpKyspewogICAgICAgIGZbaV0gPSBmW2ktMV0qaTsKICAgICAgICBmW2ldICU9IG1vZDsKICAgIH0KICAgIGZvcihpbnQgaSA9IDA7aSA8PSBuO2krKyl7CiAgICAgICAgbGwga3ggPSAoZltpXSpmW24taV0pJW1vZDsKICAgICAgICBreCA9IG5hZChreCxtb2QtMik7CiAgICAgICAga3ggKj0gZltuXTsKICAgICAgICBreCAlPSBtb2Q7CiAgICAgICAgLy9reCBsw6AgY2hhcCBpIGN1YSBuCiAgICAgICAgbGwga3ogPSBuYWQoMixuLWkpOwogICAgICAgIGt6ICo9IGZbbi1pXTsKICAgICAgICBreiA9IG5hZChreixtb2QtMik7CiAgICAgICAga3ogKj0gZlsyKihuLWkpXSVtb2Q7CiAgICAgICAgaWYoaSAlIDIgPT0gMCl7CiAgICAgICAgICAgIGRlbSArPSAoa3gqa3opJW1vZDsKICAgICAgICAgICAgZGVtICU9IG1vZDsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgZGVtIC09IChreCpreiklbW9kOwogICAgICAgICAgICBkZW0gPSAoZGVtK21vZCklbW9kOwogICAgICAgIH0KICAgICAgICBkZW0gJT0gbW9kOwogICAgfQogICAgY291dCA8PCBkZW0lbW9kOwogICAgcmV0dXJuIDA7Cn0KLyoqIHRoYXQncyBhbGwgKiov