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 hm = new HashMap(); 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); } } }