#include <bits/stdc++.h>
using namespace std;
#define sp " "
#define el '\n'
#define ll long long
vector<vector<int>> adj;
vector<int> vis;
int ans = 0;
void dfs(int s){
ans++;
vis[s] = 1;
for(auto u : adj[s]){
if(!vis[u])
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]);
}
}
vis.assign(n+1,0);
map<int,int>mp;
for(int i = 1; i <= n; i++){
if(!vis[i]){
dfs(i);
mp[i] = ans;
ans = 0;
}
}
for(int i = 1; i <= n; i++){
for(int j = 0; j < adj[i].size(); j++){
if(!mp[adj[i][j]])
mp[adj[i][j]] = mp[i];
}
}
for(auto u : mp){
cout << u.second << 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+IHZpczsKaW50IGFucyA9IDA7CnZvaWQgZGZzKGludCBzKXsKICAgIGFucysrOwogICAgdmlzW3NdID0gMTsKICAgIGZvcihhdXRvIHUgOiBhZGpbc10pewogICAgICAgIGlmKCF2aXNbdV0pCiAgICAgICAgICAgIGRmcyh1KTsKICAgIH0KCn0Kdm9pZCBTb2x1dGlvbigpCnsKICAgIGludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKICAgIGFkaiA9IHZlY3Rvcjx2ZWN0b3I8aW50Pj4gKG4rMSk7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHY7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKXsKICAgICAgICBpbnQgazsgY2luID4+IGs7CiAgICAgICAgdmVjdG9yPGludD4gYShrKTsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgazsgaisrKXsKICAgICAgICAgICAgY2luID4+IGFbal07CiAgICAgICAgfQogICAgICAgIHYucHVzaF9iYWNrKGEpOwogICAgfQogICAgCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbTsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgdltpXS5zaXplKCk7IGorKyl7CiAgICAgICAgICAgIGlmKGogPiAwKSAKICAgICAgICAgICAgICAgIGFkalt2W2ldW2pdXS5wdXNoX2JhY2sodltpXVtqLTFdKTsKICAgICAgICAgICAgaWYoaiA8ICh2W2ldLnNpemUoKS0xKSkKICAgICAgICAgICAgICAgIGFkalt2W2ldW2pdXS5wdXNoX2JhY2sodltpXVtqKzFdKTsKICAgICAgICB9CiAgICB9CiAgICB2aXMuYXNzaWduKG4rMSwwKTsKICAgIG1hcDxpbnQsaW50Pm1wOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgIGlmKCF2aXNbaV0pewogICAgICAgICAgICBkZnMoaSk7CiAgICAgICAgICAgIG1wW2ldID0gYW5zOwogICAgICAgICAgICBhbnMgPSAwOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgYWRqW2ldLnNpemUoKTsgaisrKXsKICAgICAgICAgICAgaWYoIW1wW2FkaltpXVtqXV0pIAogICAgICAgICAgICAgICAgbXBbYWRqW2ldW2pdXSA9IG1wW2ldOyAgCiAgICAgICAgfQogICAgfQogICAgZm9yKGF1dG8gdSA6IG1wKXsKICAgICAgICBjb3V0IDw8IHUuc2Vjb25kIDw8IHNwOwogICAgfQogICAgY291dCA8PCBlbDsKfQppbnQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpbnQgdDsKICAgIC8vIGNpbiA+PiB0OwogICAgLy8gZm9yKGludCB0YyA9IDE7IHRjIDw9IHQ7IHRjKyspCiAgICAgICAgU29sdXRpb24oKTsKICAgIHJldHVybiAwOwp9