using namespace std;
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 55
#define mo 1000000007
#define ll long long
int n;
ll C[N][N],f[N][N];
int main(){
	scanf("%d",&n);
	for (int i=0;i<=n;++i){
		C[i][0]=1;
		for (int j=1;j<=i;++j)
			C[i][j]=(C[i-1][j-1]+C[i-1][j])%mo;
	}
	f[1][0]=f[1][1]=n;
	for (int i=1;i<n;++i)
		for (int j=0;j<=i;++j)
			for (int k=(j==0?2:j);i+k<=n;k+=2){
				int t=(k+j)/2;
				for (int x=0;x<=k;++x)
					(f[i+k][abs(x-t)]+=f[i][j]*C[n-i][k]%mo*C[k][x])%=mo;
			}
	printf("%lld\n",f[n][0]);
	return 0;
}