9100 - 远古的密码-2

通过次数

32

提交次数

109

时间限制 : 1 秒
内存限制 : 128 MB

在古希腊,有一个很小的城邦国家,他们之前找了一个水货密码学专家XYZ给他们设计一套密码。因为密码规则过于简单,需要重新设计。现在他们找到了大龙大同学。大龙大同学是方圆百里有名的密码学专家,号称设计的密码无人能够破解。他设计的密码规则是如下:

(1)如果是小写字母,就用它在字母表上的后面d位的字母替代。如果c',字母'c'对应的d值为-1,则加密之后的字符为'b'。并且加密之后的字符也应该为字母。再比如字母'x'对应的d值为4,因为'x'的后面2位为'z',再往后就不在字母表中了,所以要循环到字母表的开头去取值,得到加密后为'b'。即字母的加密符合循环轮替。
(2)如果是空格,则随机的用'@'、'<'、'>'、'='、'['、']'替换。需要编码的原文中保证不包含'@'、'<'、'>'、'='、'['、']'字符。
(3)如果是英文的逗号',',则替换成'.'。而遇到标志句子结束的'.'号时,替换成英文的','。
(4)大小写字母对应的d值是不一样的。
(5)对于其它符号,不做任何变化。

在这个规则中,字母的d值称为密码值,记录了'A'-'Z'和'a'-'z'的d值。d值是事先给定的。

为了破译密码,我们需要知道加密之后的密码值,我们称为逆值。举例来说,当'A'的密码值d为2,则'A'的加密规则为'A'+2='C',这样得到'C'的逆值为-2。也就是说,'C'加上逆值-2就可以恢复出字母'A'来。

输入

第一行为一个字符串,字符串长度不超过300.

第二行为26个整数,数字之间用空格隔开,表示'A'-'Z'的逆值,即第二行第一个数字是'A'的逆值,第二个为'B'的逆值,......,第26个为 'Z'的逆值 。

第三行为26个整数,数字之间用空格隔开,表示'a'-'z'的逆值。

输出

一行字符,表示解码后的字符串。

样例

输入

Bgc>gme.=jqx[ngu?
0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 20 0 -27 0 -18 0 0 -9 0 0 -1 -15 0 0 1 0 0 0 0 0 0 7 0 0

输出

How old, are you?