#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef pair P; const ll MOD=1e9+7; ll powmod(ll a, ll k){ ll ap=a, ans=1; while(k>0){ if(k%2==1){ ans*=ap; ans%=MOD; } ap=ap*ap; ap%=MOD; k/=2; } return ans; } ll inv(ll a){ return powmod(a, MOD-2); } int main() { int n; cin>>n; ll f[100001]; f[0]=1; for(ll i=1; i<=n; i++){ f[i]=f[i-1]*i%MOD; } ll invf[100001]; invf[n]=inv(f[n]); for(ll i=n-1; i>=0; i--){ invf[i]=invf[i+1]*(i+1)%MOD; } ll ans=0; for(ll i=1; i<=n; i++){ ans+=f[n]*invf[i]%MOD*invf[n-i]%MOD*powmod(i, (ll)(n-i))%MOD; ans%=MOD; } cout<