#include <bits/stdc++.h>
using namespace std;

vector<int> BFS(vector<vector<int>> &Graph,int start){
    int N = Graph.size();
    vector<int> ret(N,-1);
    queue<int> Q;
    ret.at(start) = 0,Q.push(start);
    while(Q.size()){
        int pos = Q.front(); Q.pop();
        for(auto to : Graph.at(pos)){
            if(ret.at(to) != -1) continue;
            ret.at(to) = ret.at(pos)+1;
            Q.push(to);
        }
    }
    return ret;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int N,M; cin >> N >> M;
    vector<vector<int>> Graph(N);
    for(int i=0; i<M; i++){
        int u,v; cin >> u >> v;
        u--; v--;
        Graph.at(u).push_back(v);
        Graph.at(v).push_back(u);
    }

    vector<int> dist = BFS(Graph,0);
    vector<int> rev(N+1);
    for(auto &d : dist) if(d != -1) rev.at(d)++;

    int one = 1,two = 0;
    for(int i=1; i<=N; i++){
        if(i%2 == 0) one += rev.at(i),cout << one << "\n";
        else two += rev.at(i),cout << two << "\n"; 
    }
}