#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
using namespace std;
int n, m;
int dad[105];
int ans[105];
int maxDep = 0;
void init(){
for(int i = 0; i <= n; i++){
dad[i] = i;
ans[i] = 0;
}
}
void unionn(int x, int y){
dad[y] = x;
}
void dfs(int dep, int head){
int leaf = 1;
if(dep > maxDep)
maxDep = dep;
for(int i = 1; i <= n; i++){
if(dad[i] == head && dad[i] != i){
leaf = 0;
dfs(dep+1, i);
}
}
ans[dep] += leaf;
}
int main(){
cin >> n >> m;
init();
for(int i = 0; i < m; i++){
int x, y, cnt;
cin >> x >> cnt;
for(int j = 0; j < cnt; j++){
cin >> y;
unionn(x, y);
}
}
for(int i = 1; i <= n; i++){
if(dad[i] == i)
dfs(0,i);
}
for(int i = 0; i < maxDep; i++)
printf("%d ", ans[i]);
printf("%d", ans[maxDep]);
return 0;
}