Chef is known to have friends as well as enemies. Chef has a habit of communicating with friends through encrypted messages. But recently some of his enemies found the way to decrypt and get the original message. You need to write a program that simulates how the enemies decrypted the messages. 

Chef’s enemies observed that Chef used to first pass N random string before the encrypted message. Afterwards it was noticed that the key to decode the message was hidden in it. The key for decoding was the summation of the values of the key characters. 
Key characters are those characters that appear in all the N strings exactly once (exactly once in each of the N strings). A character cannot be considered as key character if it exists in all N String but does not appear exactly once in any of the string.

Once all the key characters are found, the key is the summation of the position of all the key characters in the alphabetical series to mod 26. For example, If the key characters are a,b,c then the key is( 1 + 2 + 3 ) % 26 = 6.If there are no key characters then the default value of the key is 7.


Chef thought finding out this was easy, so he added another twist while encrypting. For all alphabets at index (index starting from 0) which represent a number in Fibonacci Series (0 1 1 2 3 5 and so on), such alphabets were shifted by the key towards right e.g.: a to c, b to d (for key 2). For the rest of  alphabets, they were shifted by the key towards left e.g.: d to b, r to p, a to y (for key 2). Also all the numbers or special characters should appear unchanged.
Note: All the Strings are in lowercase

Input
The first line contains a single integer N denoting the N string used for key 
Next N lines are the String
Next Line is the encrypted Message which needs to be decoded

Output
A single line containing the DECODED string.

Constraints

1 ≤ N ≤ 100
1 ≤ | S | ≤ 100


Example
Input:
4
azfjybgbxnpyatfgcaxqylbxd
gzbbbgaxnfatxqdjfaypgcyafl
yjbfpcygxlgznyfbgxtqgxydaaa
xxyyxxyyxdlbqffctpbngggjz
cbkumuwlwkmtt_zwksa!!

Output:
kjscecodecell_rocks!!


Explanation


Here in the above example, the key characters which exist in all the N strings and appear exactly once in all N strings are 'c', 'd', 'j', 'l', 'n', 'p', ’q’, 't', 'z' 
The key is (3 + 4 + 10 + 12 + 14 + 16 + 17 + 20 + 26) % 26 i.e.  122%26 = 18 
So, the encryption key is 18
Through this information, we decode the message using opposite steps mentioned in the description. 
Original message: kjscecodecell_rocks!!
def findOccurences(s, ch):
    return [i for i, letter in enumerate(s) if letter == ch]

def fibo(n):
    a=0
    b=1
    fibon=[0,1]
    while(b<n):
        c=a+b
        fibon.append(c)
        a=b
        b=c
    return fibon


n=int(raw_input())
i=0
stri=[]
singlelist=[]
finalsingle=[]
alphabet=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

#take input
while(i<n):
    stri.append(raw_input())
    i+=1


#find unqiue char in each and append in  singlelist
#so which ever character occurs n times in singlelist are the unique char
i=0
while(i<n):
    w=stri[i]
    s=list(w)
    j=0
    while(j<len(s)):
        noofoccurence=findOccurences(s,s[j])
        if(len(noofoccurence)==1):
            singlelist.append(s[j])
        j+=1
    i+=1

#print list of unique char
#print(singlelist)



#find the finallist which contains only unique char
i=0
while(i<len(singlelist)):
    noofoccurence=findOccurences(singlelist,singlelist[i])
    if(len(noofoccurence)==n):
        if(singlelist[i] in finalsingle):
            j=1
        else:
            finalsingle.append(singlelist[i])
    i+=1

#print(finalsingle)


value=0
i=0
#finding the value(unique char ke position ka sum)
if(len(finalsingle)==0):
    value=7
else:
    while(i<len(finalsingle)):
        value+=(alphabet.index(finalsingle[i])+1)
        i+=1

value=value%26
#print(value)


#input the string
s=raw_input()
a=""
fibon=fibo(len(s))
i=0

#perform the string manipulation
while(i<len(s)):
    if(not s[i].isalpha()):
        c=s[i]
    else:
        z=alphabet.index(s[i])
        if(i in fibon):
            c=alphabet[z-value]
        else:
            z=z+value
            if(z>25):
                z=z-26
            c=alphabet[z]
    a=a+c
    i+=1

#displaying the result
print(a)