#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
#define endl '\n'
#define mod 1000000007
int main()
{
cin.tie(0) -> sync_with_stdio(0);
int n;
cin >> n;
ll dp[n+5][n+5][2]={},ck[n+5][n+5]={};
for(int i = 0;i <= n;i++) {
ck[i][0]=ck[i][i]=1;
for(int j = 1;j<i;j++) {
ck[i][j]=(ck[i-1][j]+ck[i-1][j-1]+mod)%mod;
}
}
dp[0][0][0]=1;
for(int i = 1;i <= n;i++) {
for(int j = 0;j <= n;j++) {
for(int k=0;k <= j;k++) {
if(k!=i) dp[i][j][0]+=dp[i-1][j-k][0]*ck[n-j+k][k], dp[i][j][0]%=mod;
dp[i][j][1]+=dp[i-1][j-k][1]*ck[n-j+k][k];
dp[i][j][1]%=mod;
if(i==k) dp[i][j][1]+=dp[i-1][j-k][0]*ck[n-j+k][k], dp[i][j][1]%=mod;
}
}
}
cout << dp[n][n][1];
}