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 C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include<iostream>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<math.h>

using namespace std;

typedef long long ll;

#define rep(i, n) for (ll i = 0; i < n; i++)


bool sosu(ll n) {
	if (n == 2)return true;
	if (n % 2 == 0)return false;
	for (int i = 3; i <= sqrt(n); i++) {
		if (n % i == 0) {
			return false;
		}
	}
	return true;
}


signed main() {
	
	int n;
	string s;
	cin >> n >> s;
	int a[10000];
	rep(i, s.length()) {
		a[i] = (int)s[i] - 64 + n;
	}
	for (int i = 0; i < s.length(); i++) {
		switch (a[i] % 26) {
		case 1:
			cout << "A";
			break;
		case 2:
			cout << "B";
			break;
		case 3:
			cout << "C";
			break;
		case 4:
			cout << "D";
			break;
		case 5:
			cout << "E";
			break;
		case 6:
			cout << "F";
			break;
		case 7:
			cout << "G";
			break;
		case 8:
			cout << "H";
			break;
		case 9:
			cout << "I";
			break;
		case 10:
			cout << "J";
			break;
		case 11:
			cout << "K";
			break;
		case 12:
			cout << "L";
			break;
		case 13:
			cout << "M";
			break;
		case 14:
			cout << "N";
			break;
		case 15:
			cout << "O";
			break;
		case 16:
			cout << "P";
			break;
		case 17:
			cout << "Q";
			break;
		case 18:
			cout << "R";
			break;
		case 19:
			cout << "S";
			break;
		case 20:
			cout << "T";
			break;
		case 21:
			cout << "U";
			break;
		case 22:
			cout << "V";
			break;
		case 23:
			cout << "W";
			break;
		case 24:
			cout << "X";
			break;
		case 25:
			cout << "Y";
			break;
		case 0:
			cout << "Z";
			break;
		}
	}

	return 0;
}