#include<iostream>
#include<string>
#include<algorithm>
#include<cctype>
using namespace std;
bool isUpper(char c) {
return (c >= 'A' && c <= 'Z');
}
int main() {
string s1, s2;
getline(cin, s1);
getline(cin, s2);
for (int i = 0; i < s1.size(); i++) {
if (s1[i] == '+')
for (int j = 0; j < s1.size(); j++)
s1[j] = tolower(s1[j]);
}
for (int i = 0; i < s1.size(); i++) {
if (s1[i] == '+') {
s2.erase(remove_if(s2.begin(), s2.end(), isUpper), s2.end());
}
}
for (auto s1_it = s1.begin(); s1_it != s1.end(); s1_it++) {
s2.erase(remove(s2.begin(), s2.end(), *s1_it), s2.end());
}
for (char i : s2)
cout << i;
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int ascii[255]={0};
char ch,broken[100001];
int len,i;
gets(broken);
len=strlen(broken);
for(i=0;i<len;i++)
{
ch=broken[i];
ascii[ch]=1;
//确保将小写也不输出
if(ch>='A'&&ch<='Z')
{
ch=ch-'A'+'a';
ascii[ch]=1;
}
}
while(scanf("%c",&ch)!=EOF)
{
if(ascii[ch]==0)
{
if(ch>='A'&&ch<='Z'&&(ascii['+']==1))
{
continue;
}
printf("%c",ch);
}
}
return 0;
}