#include using namespace std; #include using namespace atcoder; #define ll long long #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) using mint = modint998244353; #define ull unsigned long long random_device rnd; mt19937 mt(rnd()); int RandInt(int a, int b) { return a + mt() % (b - a + 1); } int main() { int N, M; cin >> N >> M; vector> to(N + 1); for (int i = 0; i < M; ++i) { int u, v; cin >> u >> v; to[u].push_back(v); to[v].push_back(u); } vector dist(N + 1, -1); queue q; q.push(1); dist[1] = 0; int max_dist = 0; while (!q.empty()) { int u = q.front(); q.pop(); for (int v : to[u]) { if (dist[v] == -1) { dist[v] = dist[u] + 1; max_dist = max(max_dist, dist[v]); q.push(v); } } } vector cnt(max_dist + 1, 0); for (int i = 1; i <= N; ++i) { if (dist[i] != -1) { cnt[dist[i]]++; } } vector sum_even(max_dist + 2, 0), sum_odd(max_dist + 2, 0); for (int d = 0; d <= max_dist; ++d) { if (d % 2 == 0) { sum_even[d + 1] = sum_even[d] + cnt[d]; sum_odd[d + 1] = sum_odd[d]; } else { sum_even[d + 1] = sum_even[d]; sum_odd[d + 1] = sum_odd[d] + cnt[d]; } } vector total_black(N + 1, 0); for (int t = 1; t <= N; ++t) { int min_d = min(t, max_dist); if (t % 2 == 0) { total_black[t] = sum_even[min_d + 1]; } else { total_black[t] = sum_odd[min_d + 1]; } } for (int t = 1; t <= N; ++t) { cout << total_black[t] << endl; } return 0; }