#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;
}
 

12-07 10:32