type case = Lower | Upper | Other let case_of_char c = if 'a' <= c && c <= 'z' then Lower else if 'A' <= c && c <= 'Z' then Upper else Other let solve s = let slen = String.length s in let rec solve' idx result = if idx >= slen then result else let c = s.[idx] in let nextC = match case_of_char c with | Lower -> Char.uppercase c | Upper -> Char.lowercase c | Other -> failwith "hoge" in solve' (idx + 1) (result ^ String.make 1 nextC) in solve' 0 "" let () = let s = read_line () in solve s |> print_endline