#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
int main(void) {
	int n;
	char table[1001][201];
	int min_len = 201;
	for(int i=0; i<n; i++){
		if(strlen(table
[i
]) < min_len
){ 		}
	}
	char ciphertext[10001];
	scanf(" %[^\n]", ciphertext
);  
	int len_key = 0;
	char key[201];
	for(int i = 0; i < min_len; i++){
		char c = table[0][i];
		int iskey = 1;
		for(int j = 1; j < n; j++){
			if(table[j][i] != c)
				iskey = 0;
		}
		if(iskey){
			key[len_key++] = c;
		}
		else{
			break;
		}
	}
	if(len_key == 0){
		return 0;
	}
	else{
		key[len_key] = '\0';
	}
 
	// decrypt
	char plaintext[10001];
	int key_i = 0;
	for(int i
=0; i
<strlen(ciphertext
); i
++){ 		char k 
= tolower(key
[key_i 
% len_key
]) - 'a'; 		char c = ciphertext[i] ;
			plaintext[i] = ((ciphertext[i] - 'A') - k + 26) % 26 + 'A';
			key_i++;
		}
			plaintext[i] = ((ciphertext[i] - 'a') - k + 26) % 26 + 'a';
			key_i++;
		}
		else{
			plaintext[i] = ciphertext[i];
		}
	}
	plaintext
[strlen(ciphertext
)] = '\0'; 
	return 0;
}
 
				I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgppbnQgbWFpbih2b2lkKSB7CglpbnQgbjsKCXNjYW5mKCIlZCIsICZuKTsKCWNoYXIgdGFibGVbMTAwMV1bMjAxXTsKCWludCBtaW5fbGVuID0gMjAxOwoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQlzY2FuZigiJXMiLCB0YWJsZVtpXSk7CgkJaWYoc3RybGVuKHRhYmxlW2ldKSA8IG1pbl9sZW4pewoJCQltaW5fbGVuID0gc3RybGVuKHRhYmxlW2ldKTsKCQl9Cgl9CgljaGFyIGNpcGhlcnRleHRbMTAwMDFdOwoJc2NhbmYoIiAlW15cbl0iLCBjaXBoZXJ0ZXh0KTsKCQoJaW50IGxlbl9rZXkgPSAwOwoJY2hhciBrZXlbMjAxXTsKCWZvcihpbnQgaSA9IDA7IGkgPCBtaW5fbGVuOyBpKyspewoJCWNoYXIgYyA9IHRhYmxlWzBdW2ldOwoJCWludCBpc2tleSA9IDE7CgkJZm9yKGludCBqID0gMTsgaiA8IG47IGorKyl7CgkJCWlmKHRhYmxlW2pdW2ldICE9IGMpCgkJCQlpc2tleSA9IDA7CgkJfQoJCWlmKGlza2V5KXsKCQkJa2V5W2xlbl9rZXkrK10gPSBjOwoJCX0KCQllbHNlewoJCQlicmVhazsKCQl9Cgl9CglpZihsZW5fa2V5ID09IDApewoJCXByaW50ZigiXG5cbiIpOwoJCXJldHVybiAwOwoJfQoJZWxzZXsKCQlrZXlbbGVuX2tleV0gPSAnXDAnOwoJCXByaW50ZigiJXMiLCBrZXkpOwoJfQoJCgkvLyBkZWNyeXB0CgljaGFyIHBsYWludGV4dFsxMDAwMV07CglpbnQga2V5X2kgPSAwOwoJZm9yKGludCBpPTA7IGk8c3RybGVuKGNpcGhlcnRleHQpOyBpKyspewoJCWNoYXIgayA9IHRvbG93ZXIoa2V5W2tleV9pICUgbGVuX2tleV0pIC0gJ2EnOwoJCWNoYXIgYyA9IGNpcGhlcnRleHRbaV0gOwoJCWlmKGlzdXBwZXIoYykpewoJCQlwbGFpbnRleHRbaV0gPSAoKGNpcGhlcnRleHRbaV0gLSAnQScpIC0gayArIDI2KSAlIDI2ICsgJ0EnOwoJCQlrZXlfaSsrOwoJCX0KCQllbHNlIGlmKGlzbG93ZXIoYykpewoJCQlwbGFpbnRleHRbaV0gPSAoKGNpcGhlcnRleHRbaV0gLSAnYScpIC0gayArIDI2KSAlIDI2ICsgJ2EnOwoJCQlrZXlfaSsrOwoJCX0KCQllbHNlewoJCQlwbGFpbnRleHRbaV0gPSBjaXBoZXJ0ZXh0W2ldOwoJCX0KCX0KCXBsYWludGV4dFtzdHJsZW4oY2lwaGVydGV4dCldID0gJ1wwJzsKCXByaW50ZigiJXMiLCBwbGFpbnRleHQpOwoJCglyZXR1cm4gMDsKfQo=