n = int(input()) MOD = 10**9+7 dp = [[0]*(n+1) for _ in range(n+1)] dp[0][0] = 1 for _ in range(n): ndp = [[0]*(n+1) for _ in range(n+1)] for a in range(n+1): for b in range(a+1): x = dp[a][b] if x==0: continue ndp[a][b] += x*(a*a-(a-b)) ndp[a][b] %= MOD if b+1 <= n: ndp[a][b+1] += x*(a-b) ndp[a][b+1] %= MOD if a+1 <= n: ndp[a+1][b] += x*2*a ndp[a+1][b] %= MOD if a+1 <= n and b+1 <= n: ndp[a+1][b+1] += x ndp[a+1][b+1] %= MOD if a+2 <= n: ndp[a+2][b] += x ndp[a+2][b] %= MOD dp = ndp ans = 0 for i in range(n+1): ans += dp[i][i] print(ans%MOD)