def each_slice_2(f, iterator): a = iterator.__iter__() for i in a: try: j = a.__next__() except: j = 0 yield f(i, j) def fanc(n): a = range(1, n+1) while n > 0: a = each_slice_2(lambda x, y: x * y if y != 0 else x, a) n //= 2 return a.__next__() def main(n): MAX = 1000000000000 res = fanc(n) if res > MAX: res %= MAX print("{:012}".format(res)) return print(res) if __name__ == "__main__": n = int(input()) main(n)