#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<map>
using namespace std;
const int maxn = 30000 + 20;
int parent[maxn];
int member[maxn];
int GetParent(int a) {
if( parent[a] != a ) {
parent[a] = GetParent( parent[a] );
}
return parent[a];
}
void Merge(int a, int b) {
int pa = GetParent( a );
int pb = GetParent( b );
if( pa == pb ) {
return ;
}
parent[pb] = pa;
member[pa] += member[pb];
member[pb] = 0;
}
int main() {
int N, M;
while( cin >> N >> M ) {
if( N==0 && M==0 ) {
break;
}
for(int i=0; i<N; ++i) {
parent[i] = i;
member[i] = 1;
}
while( M-- ) {
int k; cin >> k;
int a; cin >> a;
while( --k ) {
int b; cin >> b;
Merge(a, b);
}
}
int ans = member[ GetParent(0) ];
cout << ans << endl;
}
}