import java.util.*;
import java.io.*;

public class vigenere{


public static void main(String[] args) throws IOException{
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	String line;
	HashMap<Integer, Character> hm = new HashMap<Integer, Character>();
	hm.put(1, 'A');
	hm.put(2, 'B');
	hm.put(3, 'C');
	hm.put(4, 'D');
	hm.put(5, 'E');
	hm.put(6, 'F');
	hm.put(7, 'G');
	hm.put(8, 'H');
	hm.put(9, 'I');
	hm.put(10, 'J');
	hm.put(11, 'K');
	hm.put(12, 'L');
	hm.put(13, 'M');
	hm.put(14, 'N');
	hm.put(15, 'O');
	hm.put(16, 'P');
	hm.put(17, 'Q');
	hm.put(18, 'R');
	hm.put(19, 'S');
	hm.put(20, 'T');
	hm.put(21, 'U');
	hm.put(22, 'V');
	hm.put(23, 'W');
	hm.put(24, 'X');
	hm.put(25, 'Y');
	hm.put(26, 'Z');
	String zacetniKljuc;
	String kljuc;
	String beseda;
	String resitev;
	char crka;
	int novaCrka;
	int novaCrka1;
	while(!(line = br.readLine()).equals("0")){
		resitev = "";
		zacetniKljuc = line;
		kljuc = zacetniKljuc;
		beseda = br.readLine();
		novaCrka = 0;
		novaCrka1 = 0;
		while(kljuc.length() < beseda.length()){
			kljuc = kljuc + zacetniKljuc;
		}
		for(int i = 0; i < beseda.length(); i++){
			Set set = hm.entrySet();
			Iterator it = set.iterator();
			novaCrka = 0;
			novaCrka1 = 0;
			while(it.hasNext()){
				Map.Entry me = (Map.Entry)it.next();
				if(me.getValue().equals(beseda.charAt(i))){
					novaCrka = (Integer)me.getKey();
				}
				if(me.getValue().equals(kljuc.charAt(i))){
					novaCrka1 = (Integer)me.getKey();
				}
			}
			novaCrka = (novaCrka + novaCrka1) % 26;
			if(novaCrka == 0){
				novaCrka = 26;
			}
			resitev = resitev + hm.get(novaCrka);
		}
		System.out.println(resitev);
		
	}
	

}



}