#include<bits/stdc++.h>
using namespace std;
#define ll long long 
#define dbg(x) cout<<#x<<" : "<<x<<endl
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define maxn 100005
vector<ll> edges[maxn];
ll dau[maxn],d[maxn];
ll n,m;
void bfs(ll source){
    dau[source]=1;
    d[source]=0;
    queue<ll> q;
    q.push(source);
    while(!q.empty()){
        ll p = q.front();
        q.pop();
        for(auto v: edges[p]){
            if(dau[v]==1) continue;
            dau[v]=1;
            d[v]=d[p]+1;
            q.push(v);
        }
    }
}
int main(){
    // freopen("input.txt","r",stdin);
    // freopen("output.txt","w",stdout);
    cin>>n>>m;
    for(ll i=0;i<m;i++){
        ll u,v,t;
        cin>>u>>v>>t;
        u--,v--,t--;
        edges[u].push_back(v);
        edges[u].push_back(t);
        edges[v].push_back(u);
        edges[t].push_back(u);
    }
    bfs(0);
    for(ll i=0;i<n;i++) cout<<d[i]+1<<'\n';
    return 0;
}