You are given an undirected graph with n nodes numbered 1..n and m edges. Starting a breadth-first search from node 1, every node reachable from node 1 sits at some distance d (the minimum number of edges on a path from node 1), where node 1 itself is at distance 0.
Group the reachable nodes by their distance and report, for each distance d = 0, 1, 2, ... up to the largest reachable distance, how many nodes lie at that distance. Nodes that are not reachable from node 1 are ignored.
The graph may contain repeated edges and self-loops; treat them as an ordinary undirected graph (they never change shortest distances).
Input format
Line 1: two integers n and m separated by a space.
Next m lines: two integers u v (1-indexed) describing an undirected edge between u and v.
Output format
A single line of space-separated counts. The value at position d (0-indexed) is the number of nodes whose shortest distance from node 1 equals d. The line always begins with 1 (node 1 itself at distance 0) and stops at the deepest reachable layer.
Constraints
- 1 ≤ n ≤ 100000
- 0 ≤ m ≤ 200000
- 1 ≤ u, v ≤ n
- The answer is uniquely determined: layer membership depends only on shortest distance, not on traversal order.