#include<bits/stdc++.h>
using namespace std;
long long par[50010],vis[50010];
long long find(long long s)
{
if(par[s]==s)
{
return s;
}
return par[s]=find(par[s]);
}
void unionkorlam(long long x,long long y)
{
if(find(x)!=find(y))
par[find(y)]=find(x);
}
main()
{
long long n,m,cs=1;
while(cin>>n>>m)
{
if(n==0&&m==0)
break;
long i,n1,a,aa,xx,yy,j,cnt=0;
for(i=0;i<=n;i++)
par[i]=i;
for(i=1;i<=m;i++)
{
cin>>n1;
cin>>a;
xx=find(a);
for(j=1;j<n1;j++)
{
cin>>aa;
yy=find(aa);
if(xx!=yy)
{
unionkorlam(a,aa);
}
}
}
xx=find(0);
for(i=0;i<n;i++)
{
if(xx==find(i))
{
cnt++;
}
}
cout<<cnt<<endl;
}
}
using namespace std;
long long par[50010],vis[50010];
long long find(long long s)
{
if(par[s]==s)
{
return s;
}
return par[s]=find(par[s]);
}
void unionkorlam(long long x,long long y)
{
if(find(x)!=find(y))
par[find(y)]=find(x);
}
main()
{
long long n,m,cs=1;
while(cin>>n>>m)
{
if(n==0&&m==0)
break;
long i,n1,a,aa,xx,yy,j,cnt=0;
for(i=0;i<=n;i++)
par[i]=i;
for(i=1;i<=m;i++)
{
cin>>n1;
cin>>a;
xx=find(a);
for(j=1;j<n1;j++)
{
cin>>aa;
yy=find(aa);
if(xx!=yy)
{
unionkorlam(a,aa);
}
}
}
xx=find(0);
for(i=0;i<n;i++)
{
if(xx==find(i))
{
cnt++;
}
}
cout<<cnt<<endl;
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন