#include #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; int main() { int n, m; cin >> n >> m; vector> to(n); rep(i, m) { int a, b; cin >> a >> b; --a; --b; to[a].push_back(b); to[b].push_back(a); } if (!to[0].size()) { rep(i, n) puts("0"); return 0; } const int INF = 1001001001; vector dist(n, INF); queue q; dist[0] = 0; q.push(0); while (q.size()) { int v = q.front(); q.pop(); for (int u : to[v]) { if (dist[u] != INF) continue; dist[u] = dist[v]+1; q.push(u); } } vector ans(n+1); for (int x : dist) if (x <= n) ans[x]++; rep(i, n-1) ans[i+2] += ans[i]; for (int i = 1; i <= n; ++i) cout << ans[i] << '\n'; return 0; }