def combination_len(n,r);Fact[n]*Factr[r]*Factr[n-r]%Mod;end def repeated_combination_len(n,r);n|r==0?1:combination_len(n+r-1,r);end def permutation_len(n,r);Fact[n]*Factr[n-r]%Mod;end Inv = [1]*2 Fact = [1]*2 Factr = [1]*2 Mod = 1000000007 n=gets.to_i (2..n).each{|i| Inv[i] = (Mod-Mod/i)*Inv[Mod%i]%Mod Fact[i] = i*Fact[i-1]%Mod Factr[i] = Inv[i]*Factr[i-1]%Mod } dp=[] (0..n).each{|i| dp[i]=[0] dp[i][i]=1 (1...i).each{|k| dp[i][k]=(dp[i-1][k-1]+k*dp[i-1][k])%Mod } } sum=0 (1..n).each{|i| (1..i).each{|j| sum+=combination_len(n,i)*dp[i][j]*(j*(j-1))**(n-i) } } p sum%Mod