#include<iostream>
#include<vector>
using namespace std;
vector<int> v[100];
int cnt[110];
bool vis[110]={false};
int maxdepth=0;
void dfs(int index,int depth){
if(maxdepth<depth)
maxdepth=depth;
vis[index]=true;
if(v[index].size()==0) cnt[depth]++;
for(int i=0;i<v[index].size();i++){
if(vis[v[index][i]]==false){
dfs(v[index][i],depth+1);
}
}
}
int main(){
int N,M,K,id,child;
scanf("%d%d",&N,&M);
for(int i=0;i<M;i++){
scanf("%d%d",&id,&K);
for(int j=0;j<K;j++){
scanf("%d",&child);
v[id].push_back(child);
}
}
dfs(1,0);
for(int i=0;i<=maxdepth;i++){
if(i!=0) printf(" ");
printf("%d",cnt[i]);
}
}