#include #include #include #include using namespace std; const int maxn=25; map s_i; string i_s[maxn+5],a,b; int n,m,cnt,i,j,k,kase; inline int ID(const string &str) { if(!s_i.count(str)) { s_i[str]=cnt; i_s[cnt++]=str; } return s_i[str]; } bool g[maxn+5][maxn+5],e[maxn+5][maxn+5],vis[maxn+5],flag; void dfs(int id) { if(vis[id]) return; if(flag) cout<<", "; flag=true; cout<>n>>m)&&n) { s_i.clear(); cnt=0; memset(g,0,sizeof(g)); memset(e,0,sizeof(e)); memset(vis,0,sizeof(vis)); for(i=0;i>a>>b; g[ID(a)][ID(b)]=true; } for(k=0;k "< "<