#include<bits/stdc++.h>
using namespace std;
vector<int>p[22];
struct node{
int size;
int index;
};
bool visited[200002];
//bool row[21];
bool comp(const node a, const node b)
{
return a.size<b.size;
}
int main()
{
int n,m;
//freopen("output.txt","r+",stdin);
node q[21];
memset(visited, false,sizeof(visited));
//memset(row,false,sizeof(row));
//p.clear();
scanf("%d%d",&n,&m);
for(int i=0;i<m;i++)
{
int s;
cin>>s;
for(int j=0;j<s;j++)
{
int b;
cin>>b;
p[i].push_back(b);
}
q[i].size = s;
q[i].index = i;
}
sort(q,q+m,comp);
//for(int i=0;i<m;i++)
//{
// cout<<q[i].size<<" ";
//}
//cout<<endl;
bool flag= false;
int count=0L;
for(int i=0;i<m;i++)
{
bool flag2=false;
//if(row[i])
//continue;
for(int j=0; j<q[i].size;j++ )
{
if(visited[p[q[i].index][j]])
{
break;
}
if(j==q[i].size-1)
{
count++;
flag2= true;
//row[i]=true;
}
}
if(flag2)
{
for(int j=0; j<q[i].size;j++)
{
visited[p[q[i].index][j]]=true;
//cout<<p[q[i].index][j]<<" ";
}
//cout<<endl;
}
}
//}
cout<<count<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdmVjdG9yPGludD5wWzIyXTsKc3RydWN0IG5vZGV7CglpbnQgc2l6ZTsKCWludCBpbmRleDsKfTsKCmJvb2wgdmlzaXRlZFsyMDAwMDJdOwovL2Jvb2wgcm93WzIxXTsKYm9vbCBjb21wKGNvbnN0IG5vZGUgYSwgY29uc3Qgbm9kZSBiKQp7CglyZXR1cm4gYS5zaXplPGIuc2l6ZTsKfQppbnQgbWFpbigpCnsKCWludCBuLG07CgkvL2ZyZW9wZW4oIm91dHB1dC50eHQiLCJyKyIsc3RkaW4pOwoJbm9kZSBxWzIxXTsKCW1lbXNldCh2aXNpdGVkLCBmYWxzZSxzaXplb2YodmlzaXRlZCkpOwoJLy9tZW1zZXQocm93LGZhbHNlLHNpemVvZihyb3cpKTsKCS8vcC5jbGVhcigpOwoJc2NhbmYoIiVkJWQiLCZuLCZtKTsKCWZvcihpbnQgaT0wO2k8bTtpKyspCgl7CgkJaW50IHM7CgkJY2luPj5zOwoJCWZvcihpbnQgaj0wO2o8cztqKyspCgkJewoJCQlpbnQgYjsgCgkJCWNpbj4+YjsKCQkJcFtpXS5wdXNoX2JhY2soYik7CgkJCQoJCX0KCQlxW2ldLnNpemUgPSBzOwoJCXFbaV0uaW5kZXggPSBpOwoJCQoJfQoJc29ydChxLHErbSxjb21wKTsKCS8vZm9yKGludCBpPTA7aTxtO2krKykKCS8vewoJLy8JY291dDw8cVtpXS5zaXplPDwiICI7CgkvL30KCS8vY291dDw8ZW5kbDsKCWJvb2wgZmxhZz0gZmFsc2U7CglpbnQgY291bnQ9MEw7CgkJZm9yKGludCBpPTA7aTxtO2krKykKCQl7CgkJCWJvb2wgZmxhZzI9ZmFsc2U7CgkJCS8vaWYocm93W2ldKQoJCQkgLy9jb250aW51ZTsKCQkJZm9yKGludCBqPTA7IGo8cVtpXS5zaXplO2orKyApCgkJCXsKCQkJCWlmKHZpc2l0ZWRbcFtxW2ldLmluZGV4XVtqXV0pCgkJCQl7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCQlpZihqPT1xW2ldLnNpemUtMSkKCQkJCXsKCQkJCQljb3VudCsrOwoJCQkJCWZsYWcyPSB0cnVlOwoJCQkJCS8vcm93W2ldPXRydWU7CgkJCQl9CgkJCQoJCQl9CgkJCQlpZihmbGFnMikKCQkJCXsKCQkJICAgICAgIGZvcihpbnQgaj0wOyBqPHFbaV0uc2l6ZTtqKyspCgkJCSAgICAgICAgewoJCQkgICAgICAgIHZpc2l0ZWRbcFtxW2ldLmluZGV4XVtqXV09dHJ1ZTsKCQkJICAgIAkvL2NvdXQ8PHBbcVtpXS5pbmRleF1bal08PCIgIjsKCQkJCSAgICB9CgkJCQkgICAgLy9jb3V0PDxlbmRsOwoJCQkgICB9CgkJCSAgIAoJCX0KCS8vfQoJY291dDw8Y291bnQ8PGVuZGw7CgkKCQoJCn0=