def inv(x): return pow(x, MOD-2, MOD) def C(n, r): return fact[n]*inv(fact[r])*inv(fact[n-r]) N = int(input()) MOD = 10**9+7 fact = [1] for i in range(1, N+1): fact.append(fact[-1]*i%MOD) #dp[i][j]: 同じグループに入る夫婦の組の数がiでそのi組がj個のグループに分かれる場合の数 dp = [[0] * (N+1) for _ in range(N+1)] dp[0][0] = 1 for i in range(1, N+1): for j in range(1, N+1): dp[i][j] = dp[i-1][j-1]+j*dp[i-1][j] ans = 0 for i in range(1, N+1): for j in range(1, i+1): ans += C(N, i)*dp[i][j]*(j*(j-1))**(N-i) ans %= MOD print(ans)