import math

n = int(eval(input()))



ans = math.factorial(n)  # nの階乗を計算



if ans >= (10 ** 9)+7:

    ans = ans % ((10 ** 9)+7)



print(ans)

n = int(eval(input()))



ans = 1

for i in range(1, n+1):

    ans = ans * i

    ans = ans % ((10 ** 9)+7)  # 途中で割り算の余りを求めても、最終結果は同じになる



print(ans)
import math

n = int(eval(input()))
ans = math.factorial(n)  # nの階乗を計算
if ans >= (10**9) + 7:
    ans = ans % ((10**9) + 7)
print(ans)

n = int(eval(input()))
ans = 1
for i in range(1, n + 1):
    ans = ans * i
    ans = ans % ((10**9) + 7)  # 途中で割り算の余りを求めても、最終結果は同じになる
print(ans)

-import math - -ans = math.factorial(n)  # nの階乗を計算 -if ans >= (10**9) + 7: -    ans = ans % ((10**9) + 7) +ans = 1 +for i in range(1, n + 1): +    ans = ans * i +    ans = ans % ((10**9) + 7)  # 途中で割り算の余りを求めても、最終結果は同じになる