第三题的优化暴力
#include <iostream>
#include <set>
#include <string>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

int no=1;
map<string,int> mp;
int get_n(string &s) {
    if(mp.count(s)) return mp[s];
    mp[s] = no++;
    return mp[s];
}

int stno;
vector<vector<int>> vvs;
vector<int> one;
map<int,vector<int>> mpone;


void get_va(int d) {
    vvs.resize(d);
    getchar();
    for(int i=0;i<d;i++){
        string tmp;
        getline(cin,tmp);
        while(tmp.size()) {
            auto p = find(tmp.begin(),tmp.end(),',');
            if(p==tmp.end()){
                int n=get_n(tmp);
//                if(n==stno) one.push_back(i);
                if(mpone.count(n)) {
                    mpone[n].push_back(i);
                }else{
                    mpone[n]=vector<int>{i};
                }
                vvs[i].push_back(n);
                break;
            }else{
                int pos = p-tmp.begin();
                string t =tmp.substr(0,pos);
                int n=get_n(t);
                if(mpone.count(n)) {
                    mpone[n].push_back(i);
                }else{
                    mpone[n]=vector<int>{i};
                }
                if(n==stno) one.push_back(i);
                vvs[i].push_back(n);
                tmp=tmp.substr(pos+1);
            }
        }
    }
    return ;
}

int main() {
    string s;
    int d;
    cin>>s;
    cin>>d;
    stno = get_n(s);

    get_va(d);

//    for(auto v: mpone) {
////        for(auto n: v.second) cout<<n<<" ";cout<<endl;
//    }

    vector<bool> vst(no,false);
    set<int> st;
    for(auto v:mpone[stno]) {
        for(int i : vvs[v]) {
            st.insert(i);
            vst[i] = true;
        }
    }

    set<int> allk;
    for(auto v: st) {
        for(auto n:mpone[v]){
            allk.insert(n);
        }
    }
    for(auto n: allk) {
        for(auto v: vvs[n]) {
            vst[v] = true;
        }
    }

    int ans = 0;
    for(auto v: vst) {
        if(v==true) {
            ans++;
        }
    }
    cout<<ans;

    return 0;;
}