module String = struct include String (* @since 4.02.0 *) let mapi f s = let l = Bytes.length s in if l = 0 then s else begin let r = Bytes.create l in for i = 0 to l - 1 do Bytes.set r i (f i s.[i]) done; r end end let () = read_line () |> String.mapi (fun i c -> (Char.code c - Char.code 'A' - ((i + 1) mod 26) + 26) mod 26 + Char.code 'A' |> Char.chr) |> print_endline