let rec fact_mod n mm = let rec inner m acc = if m = 0 then acc else inner (m - 1) ((m * acc) mod mm) in inner n 1 ;; let () = Scanf.sscanf (read_line ()) "%d" (fun n -> print_string @@ string_of_int @@ fact_mod n 1000000000000; print_string "\n")