N=int(input()) mod=1000000007 dp=[[[[0 for i in range(2)] for j in range(2)] for k in range(N+1)] for l in range(N+2)] dp[1][0][0][0] = 1 dp[2][0][0][0] = 2 for i in range(2, N+1): for j in range(N+1): if dp[i][j][0][0] > 0: dp[i+1][j][0][0] += (i-1-j) * dp[i][j][0][0] dp[i+1][j][0][0] %= mod dp[i+1][j][0][1] += 2 * dp[i][j][0][0] dp[i+1][j][0][1] %= mod if j-1 >= 0: dp[i+1][j-1][0][0] += j * dp[i][j][0][0] dp[i+1][j-1][0][0] %= mod if dp[i][j][0][1] > 0: dp[i+1][j][1][0] += (i-2-j) * dp[i][j][0][1] dp[i+1][j][1][0] %= mod dp[i+1][j][1][1] += 2 * dp[i][j][0][1] dp[i+1][j][1][1] %= mod dp[i+1][j][0][0] += dp[i][j][0][1] dp[i+1][j][0][0] %= mod if j-1 >= 0: dp[i+1][j-1][1][0] += j * dp[i][j][0][1] dp[i+1][j-1][1][0] %= mod if dp[i][j][1][0]>0: dp[i+1][j+1][0][0] += (i-1-j)*dp[i][j][1][0] dp[i+1][j+1][0][0] %= mod dp[i+1][j+1][0][1] += dp[i][j][1][0] dp[i+1][j+1][0][1] %= mod dp[i+1][j][0][1] += dp[i][j][1][0] dp[i+1][j][0][1] %= mod if j-1 >= 0: dp[i+1][j][0][0] += j * dp[i][j][1][0] dp[i+1][j][0][0] %= mod if dp[i][j][1][1] > 0: dp[i+1][j+1][1][0] += (i-2-j) * dp[i][j][1][1] dp[i+1][j+1][1][0] %= mod dp[i+1][j+1][1][1] += dp[i][j][1][1] dp[i+1][j+1][1][1] %= mod dp[i+1][j][1][1] += dp[i][j][1][1] dp[i+1][j][1][1] %= mod dp[i+1][j+1][0][0] += dp[i][j][1][1] dp[i+1][j+1][0][0] %= mod if j-1 >= 0: dp[i+1][j][1][0] += j * dp[i][j][1][1] dp[i+1][j][1][0] %= mod print(dp[N][0][0][0])