output_description: Print the string resulting from shifting each character of S by N in
  alphabetical order.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      S
attempt: def solve(n: int, s: str) -> str:
      def inc(c: str, n: int) -> str:
          tbl = {
              0: "A",
              1: "B",
              2: "C",
              3: "D",
              4: "E",
              5: "F",
              6: "G",
              7: "H",
              8: "I",
              9: "J",
              10: "K",
              11: "L",
              12: "M",
              13: "N",
              14: "O",
              15: "P",
              16: "Q",
              17: "R",
              18: "S",
              19: "T",
              20: "U",
              21: "V",
              23: "W",
              24: "X",
              25: "Y",
              26: "Z",
          }
          rev_tbl = {v: k for k, v in tbl.items()}
          idx = (rev_tbl[c] + n) % len(tbl)
          return tbl[idx]
  
      return "".join([inc(c, n) for c in s])
  
  
  n = int(input().strip())
  s = input().strip()
  print(solve(n, s))
  
problem_description: Statement
  
  We have a string S consisting of uppercase English letters. Additionally, an
  integer N will be given.
  
  Shift each character of S by N in alphabetical order (see below), and print
  the resulting string.
  
  We assume that `A` follows `Z`. For example, shifting `A` by 2 results in `C`
  (`A` \to `B` \to `C`), and shifting `Y` by 3 results in `B` (`Y` \to `Z` \to
  `A` \to `B`).
samples: [{"input": "2\n    ABCXYZ", "output": "CDEZAB\n    \n\nNote that `A` follows `Z`.\n\n* * *"}, {"input": "0\n    ABCXYZ", "output": "ABCXYZ\n    \n\n* * *"}, {"input": "13\n    ABCDEFGHIJKLMNOPQRSTUVWXYZ", "output": "NOPQRSTUVWXYZABCDEFGHIJKLM"}]