Problem:
Score : 200 points

Problem 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).

Constraints

0 \leq N \leq 26

1 \leq |S| \leq 10^4

S consists of uppercase English letters.

Input

Input is given from Standard Input in the following format:

N
S

Output

Print the string resulting from shifting each character of S by N in alphabetical order.

Sample Input 1

2
ABCXYZ

Sample Output 1

CDEZAB

Note that A follows Z.

Sample Input 2

0
ABCXYZ

Sample Output 2

ABCXYZ

Sample Input 3

13
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Sample Output 3

NOPQRSTUVWXYZABCDEFGHIJKLM

Solution in Fortran (gfortran v4.8.4) (judge verdict: Accepted)

program main
  integer::n,i,j,k,ans,le
  !integer,allocatable::
  character(10000)::s
read(*,*)n

read(*,*)s
le=len(s)
!write(*,*) le
do i=1,n
  do j=1,le
    select case(s(j:j))
    case('A')
      s(j:j)='B'
    case('B')
      s(j:j)='C'
    case('C')
      s(j:j)='D'
    case('D')
      s(j:j)='E'
    case('E')
      s(j:j)='F'
    case('F')
      s(j:j)='G'
    case('G')
      s(j:j)='H'
    case('H')
      s(j:j)='I'
    case('I')
      s(j:j)='J'
    case('J')
      s(j:j)='K'
    case('K')
      s(j:j)='L'
    case('L')
      s(j:j)='M'
    case('M')
      s(j:j)='N'
    case('N')
      s(j:j)='O'
    case('O')
      s(j:j)='P'
    case('P')
      s(j:j)='Q'
    case('Q')
      s(j:j)='R'
    case('R')
      s(j:j)='S'
    case('S')
      s(j:j)='T'
    case('T')
      s(j:j)='U'
    case('U')
      s(j:j)='V'
    case('V')
      s(j:j)='W'
    case('W')
      s(j:j)='X'
    case('X')
      s(j:j)='Y'
    case('Y')
      s(j:j)='Z'
    case('Z')
      s(j:j)='A'
    end select
  end do
end do
s=trim(s(1:le))
write(*,'(a)') s
stop
end program