#include<iostream>
#include<sstream>
#include<vector>
#include<algorithm>
using namespace std;
bool broken(vector<pair<string, string>>& serverList, string s, vector<string>& badList)
{
if(find(badList.begin(), badList.end(), s) != badList.end())
{
return true;
}
for(auto& p : serverList)
{
if(p.first == s && (find(badList.begin(), badList.end(), p.second) != badList.end()))
{
return true;
}
}
return false;
}
void solveMethod(string servers, string bad)
{
vector<pair<string, string>> serverList;
vector<string> listS;
istringstream ss(servers);
string server;
while(getline(ss, server, ','))
{
string a;
string b;
istringstream sss(server);
getline(sss, a, '-');
getline(sss, b, '-');
serverList.push_back({a, b});
if(find(listS.begin(), listS.end(), a) == listS.end())
{
listS.push_back(a);
}
if(find(listS.begin(), listS.end(), b) == listS.end())
{
listS.push_back(b);
}
}
vector<string> badList;
string badServer;
istringstream b(bad);
while(getline(b, badServer, ','))
{
badList.push_back(badServer);
}
vector<string> normalList;
for(string s : listS)
{
if(!broken(serverList, s, badList))
{
normalList.push_back(s);
}
}
int len = normalList.size();
if(len == 0)
{
cout << "," << endl;
}
else
{
for(int i = 0; i < len; i++)
{
cout << normalList[i];
if(i < len - 1)
{
cout << ",";
}
}
cout << endl;
}
}
int main()
{
string servers;
string bad;
getline(cin, servers);
getline(cin, bad);
solveMethod(servers, bad);
return 0;
}