n = int(input()) f = [1] MOD = 1000000007 for i in range(1, n + 1): f.append(f[-1] * i % MOD) fi = [1 for i in range(n + 1)] fi[n] = pow(f[n], MOD - 2, MOD) for i in reversed(range(1, n + 1)): fi[i - 1] = fi[i] * i % MOD ans = 0 for i in range(1, n + 1): ans += f[n] * fi[i] * fi[n - i] % MOD * pow(i, n - i, MOD) % MOD ans %= MOD print(ans)