#include <stdio.h>
#include <string.h>
static char WordTable[26];
static char newWordTable[26];
char large(char temp)
{
return temp>'Z'?temp-32:temp;
}
void rebuildkey(char* key, int length,char* newkey, int* newkeylen)
{
int hashT[26] = {0};
for(int i = 0; i< length;i++)
{
char temp = large(key[i]);
hashT[temp-'A']++;
}
//重构word table
int k = 0;
for(int i=0;i<length;i++)
{
char temp = large(key[i]);
if(hashT[temp-'A'])
{
newkey[k++] = temp;
hashT[temp-'A'] = 0;
}
}
*newkeylen = k;
}
int wordinkey(char word, char* key, int len)
{
for(int i=0;i<len;i++)
{
if(word ==key[i])
{
return 1;
}
}
return 0;
}
void rebuildwordtable(char* oldwordtable, char* newwordtable,char* newkey,int newkeylen)
{
int i =0;
for(;i<newkeylen;i++)
{
newwordtable[i] = newkey[i];
}
for(int j =0;j<26;j++)
{
if(!wordinkey(oldwordtable[j],newkey,newkeylen))
{
newwordtable[i++] = oldwordtable[j];
}
}
}
int main() {
char key[100];
char str[100];
char newkey[100];
scanf("%s\n",key);
scanf("%s\n",str);
WordTable[0] = 'A';
for(int i=1;i<26;i++)
{
WordTable[i] = WordTable[i-1]+1;
}
int length = strlen(key);
int newlen = 0;
rebuildkey(key,length, newkey, &newlen);
rebuildwordtable(WordTable, newWordTable, newkey, newlen);
for(int i = 0;i<strlen(str);i++)
{
int index = large(str[i])-'A';
if(str[i]<'a')
{
printf("%c",newWordTable[index]);//大写
}
else {
printf("%c",(newWordTable[index])+32);//小写
}
}
return 0;
}