output_description: Print the answer modulo 10^{9}+7.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N
attempt: import sys
  
  stdin = sys.stdin
  inf = 1 << 60
  mod = 1000000007
  
  ni = lambda: int(ns())
  nin = lambda y: [ni() for _ in range(y)]
  na = lambda: list(map(int, stdin.readline().split()))
  nan = lambda y: [na() for _ in range(y)]
  nf = lambda: float(ns())
  nfn = lambda y: [nf() for _ in range(y)]
  nfa = lambda: list(map(float, stdin.readline().split()))
  nfan = lambda y: [nfa() for _ in range(y)]
  ns = lambda: stdin.readline().rstrip()
  nsn = lambda y: [ns() for _ in range(y)]
  ncl = lambda y: [list(ns()) for _ in range(y)]
  nas = lambda: stdin.readline().split()
  
  n = ni()
  
  ans = 1
  for i in range(1, n + 1):
      ans = ans * i % mod
  print(ans % mod)
  
problem_description: Statement
  
  Snuke loves working out. He is now exercising N times.
  
  Before he starts exercising, his _power_ is 1. After he exercises for the i-th
  time, his power gets multiplied by i.
  
  Find Snuke's power after he exercises N times. Since the answer can be
  extremely large, print the answer modulo 10^{9}+7.
samples: [{"input": "3", "output": "6\n    \n\n  * After Snuke exercises for the first time, his power gets multiplied by 1 and becomes 1.\n  * After Snuke exercises for the second time, his power gets multiplied by 2 and becomes 2.\n  * After Snuke exercises for the third time, his power gets multiplied by 3 and becomes 6.\n\n* * *"}, {"input": "10", "output": "3628800\n    \n\n* * *"}, {"input": "100000", "output": "457992974\n    \n\nPrint the answer modulo 10^{9}+7."}]