#include #define MOD 1000000007LL using namespace std; typedef long long ll; typedef pair P; int n; ll fact[100001]; ll extgcd(ll a,ll b,ll& x,ll& y){ ll d=a; if(b!=0LL){ d=extgcd(b,a%b,y,x); y-=(a/b)*x; }else{ x=1; y=0; } return d; } ll mod_inverse(ll a,ll m){ ll x,y; extgcd(a,m,x,y); return (m+x%m)%m; } ll mod_fact(ll n,ll p,ll& e){ e=0; if(n==0)return 1; ll res=mod_fact(n/p,p,e); e+=n/p; if(n/p%2!=0){ return res*(p-fact[n%p])%p; } return res*fact[n%p]%p; } ll mod_comb(ll n,ll k,ll p){ if(n<0 || k<0 || ne2+e3)return 0; return a1*mod_inverse(a2*a3%p,p)%p; } ll mod_pow(ll x,ll n){ ll res=1; while(n>0){ if(n&1)res=x*res%MOD; x=x*x%MOD; n>>=1; } return res; } int main(void){ scanf("%d",&n); ll ans=0; fact[0]=1; for(int i=1;i<=n;i++){ fact[i]=(ll)fact[i-1]*i%MOD; } for(int i=0;i<=n;i++){ ans+=mod_comb(n,i,MOD)*mod_pow(n-i,i)%MOD; ans%=MOD; } printf("%lld\n",ans); return 0; }