#include<bits/stdc++.h>
#include <vector>
using namespace std;
vector<long>vec[5005];
long cnt=0,vis[5005]={0};
long bfs(long a)
{
queue<long>q;
q.push(a);
cnt=0;
long u,v,i1;
while(!q.empty())
{
u=q.front();
q.pop();
for(i1=0;i1<vec[u].size();i1++)
{
v=vec[u][i1];
if(vis[v]==0)
{
cnt++;
vis[v]=1;
q.push(v);
}
}
}
return cnt;
}
main()
{
long n,m;
while(cin>>n>>m)
{
long i;
string s,s1;
map<string,long>mp;
if(n==0&&m==0)
break;
for(i=1;i<=n;i++)
{
cin>>s;
mp[s]=i;
}
for(i=1;i<=m;i++)
{
cin>>s>>s1;
vec[mp[s]].push_back(mp[s1]);
vec[mp[s1]].push_back(mp[s]);
}
long ans=0,mx=0;
for(i=1;i<=n;i++)
{
if(vis[i]==0)
{
ans=bfs(i);
vis[i]=1;
mx=max(mx,ans);
ans=0;
}
}
if(mx==0)
{
cout<<1<<endl;
}
else
cout<<mx<<endl;
for(i=1;i<=n;i++)
{
vec[i].clear();
vis[i]=0;
}
}
}
#include <vector>
using namespace std;
vector<long>vec[5005];
long cnt=0,vis[5005]={0};
long bfs(long a)
{
queue<long>q;
q.push(a);
cnt=0;
long u,v,i1;
while(!q.empty())
{
u=q.front();
q.pop();
for(i1=0;i1<vec[u].size();i1++)
{
v=vec[u][i1];
if(vis[v]==0)
{
cnt++;
vis[v]=1;
q.push(v);
}
}
}
return cnt;
}
main()
{
long n,m;
while(cin>>n>>m)
{
long i;
string s,s1;
map<string,long>mp;
if(n==0&&m==0)
break;
for(i=1;i<=n;i++)
{
cin>>s;
mp[s]=i;
}
for(i=1;i<=m;i++)
{
cin>>s>>s1;
vec[mp[s]].push_back(mp[s1]);
vec[mp[s1]].push_back(mp[s]);
}
long ans=0,mx=0;
for(i=1;i<=n;i++)
{
if(vis[i]==0)
{
ans=bfs(i);
vis[i]=1;
mx=max(mx,ans);
ans=0;
}
}
if(mx==0)
{
cout<<1<<endl;
}
else
cout<<mx<<endl;
for(i=1;i<=n;i++)
{
vec[i].clear();
vis[i]=0;
}
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন