#include <bits/stdc++.h>
using namespace std;
#define sp " "
#define el '\n'
#define ll long long
vector<vector<int>> adj;
vector<int> vis, res;
int ans = 0, f = 0;
void dfs(int s){
ans++;
vis[s] = 1;
for(auto u : adj[s]){
if(!vis[u]){
if(f) res[u] = res[s];
dfs(u);
}
}
}
void Solution()
{
int n, m;
cin >> n >> m;
adj = vector<vector<int>> (n+1);
vector<vector<int>> v;
for(int i = 0; i < m; i++){
int k; cin >> k;
vector<int> a(k);
for(int j = 0; j < k; j++){
cin >> a[j];
}
v.push_back(a);
}
for(int i = 0; i < m; i++){
for(int j = 0; j < v[i].size(); j++){
if(j > 0)
adj[v[i][j]].push_back(v[i][j-1]);
if(j < (v[i].size()-1))
adj[v[i][j]].push_back(v[i][j+1]);
}
}
res = vector<int> (n+1);
vis.assign(n+1,0);
map<int,int>mp;
for(int i = 1; i <= n; i++){
if(!vis[i]){
dfs(i);
res[i] = ans;
ans = 0;
}
}
vis.assign(n+1,0);
f = 1;
for(int i = 1; i <= n; i++){
if(!vis[i]){
dfs(i);
}
}
for(int i = 1; i <= n; i++){
cout << res[i] << sp;
}
cout << el;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t;
// cin >> t;
// for(int tc = 1; tc <= t; tc++)
Solution();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHNwICIgIgojZGVmaW5lIGVsICdcbicKI2RlZmluZSBsbCBsb25nIGxvbmcKdmVjdG9yPHZlY3RvcjxpbnQ+PiBhZGo7CnZlY3RvcjxpbnQ+IHZpcywgcmVzOwppbnQgYW5zID0gMCwgZiA9IDA7CnZvaWQgZGZzKGludCBzKXsKICAgIGFucysrOwogICAgdmlzW3NdID0gMTsKICAgIGZvcihhdXRvIHUgOiBhZGpbc10pewogICAgICAgIGlmKCF2aXNbdV0pewogICAgICAgICAgICBpZihmKSByZXNbdV0gPSByZXNbc107CiAgICAgICAgICAgIGRmcyh1KTsKICAgICAgICB9CiAgICB9Cn0Kdm9pZCBTb2x1dGlvbigpCnsKICAgIGludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIGFkaiA9IHZlY3Rvcjx2ZWN0b3I8aW50Pj4gKG4rMSk7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHY7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKXsKICAgICAgICBpbnQgazsgY2luID4+IGs7CiAgICAgICAgdmVjdG9yPGludD4gYShrKTsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgazsgaisrKXsKICAgICAgICAgICAgY2luID4+IGFbal07CiAgICAgICAgfQogICAgICAgIHYucHVzaF9iYWNrKGEpOwogICAgfQogICAgCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgdltpXS5zaXplKCk7IGorKyl7CiAgICAgICAgICAgIGlmKGogPiAwKSAKICAgICAgICAgICAgICAgIGFkalt2W2ldW2pdXS5wdXNoX2JhY2sodltpXVtqLTFdKTsKICAgICAgICAgICAgaWYoaiA8ICh2W2ldLnNpemUoKS0xKSkKICAgICAgICAgICAgICAgIGFkalt2W2ldW2pdXS5wdXNoX2JhY2sodltpXVtqKzFdKTsKICAgICAgICB9CiAgICB9CiAgICByZXMgPSB2ZWN0b3I8aW50PiAobisxKTsKICAgIHZpcy5hc3NpZ24obisxLDApOwogICAgbWFwPGludCxpbnQ+bXA7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgaWYoIXZpc1tpXSl7CiAgICAgICAgICAgIGRmcyhpKTsKICAgICAgICAgICAgcmVzW2ldID0gYW5zOyAKICAgICAgICAgICAgYW5zID0gMDsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHZpcy5hc3NpZ24obisxLDApOwogICAgZiA9IDE7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgaWYoIXZpc1tpXSl7CiAgICAgICAgICAgIGRmcyhpKTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgY291dCA8PCByZXNbaV0gPDwgc3A7CiAgICB9CiAgICBjb3V0IDw8IGVsOwp9CmludCBtYWluKCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGludCB0OwogICAgLy8gY2luID4+IHQ7CiAgICAvLyBmb3IoaW50IHRjID0gMTsgdGMgPD0gdDsgdGMrKykKICAgICAgICBTb2x1dGlvbigpOwogICAgcmV0dXJuIDA7Cn0=