JOI 国は N 個の街とそれらをつなぐ M 本の道からなる.街には 1 から N までの番号が,道には 1 から M までの番号が付けられている.道 i ( \(1 \le i \le M\) ) は街 A i と街 B i を双方向につないでいる.ここで, A i < B i である.また,どの 2 つの街のペアについても,それらをつなぐ道は高々 1 本である.すなわち, A i ≠ A j または B i ≠ B j ( \(1 \le i < j \le M\) ) である.
ビ太郎は現在街 s におり,旅行計画を立てている.旅行計画はビ太郎が訪れる街の番号の順番を表す数列 v = (v 1 , v 2 , ...) で表される.ここで, v は 1 以上 N 以下の整数からなる,長さ 1 以上の数列である.ビ太郎は旅行で訪れる街の番号の順番に強いこだわりを持っているため,数列 v は,その長さを l としたとき,以下の条件をすべて満たす必要がある.
v 1 = s .
各 j = 1, 2, ..., l − 1 について,街 v j と街 v j+1 は道でつながれている.
各 j = 1, 2, ..., l − 1 について, j が奇数のとき v j < v j+1 が, j が偶数のとき v j > v j+1 が,それぞれ成り立つ.
例えば, v = (2) や v = (1, 4, 1, 5, 3) は 3 つ目の条件を満たすが, v = (3, 2) は 3 つ目の条件を満たさない.
ビ太郎は,どのような旅行計画を立てたとしても到達できない街,すなわち,上記の条件をすべて満たすどの数列 v にも登場しない番号の街が全部でいくつあるのか気になっている.
あなたは現在ビ太郎がどの街にいるかについて知らないので, s = 1, 2, ..., N それぞれについて,ビ太郎の質問に対する答えを計算したい.
JOI 国の街と道についての情報が与えられたとき, s = 1, 2, ..., N それぞれについて,ビ太郎がどのような旅行計画を立てたとしても到達できない街の個数を求めるプログラムを作成せよ.
1 ≦ N ≦ 300 000 .
0 ≦ M ≦ 300 000 .
1 ≦ A i < B i ≦ N ( \(1 \le i \le M\) ).
A i ≠ A j または B i ≠ B j ( \(1 \le i < j \le M\) ).
入力される値はすべて整数である.
( 12 点) \(N \le 1000\) , M = N − 1 .さらに, (1, 2, ..., N) を並べ替えて得られるある順列 P = (P 1 , P 2 , ..., P N ) が存在し,各 i = 1, 2, ..., N − 1 について, P i と P i+1 をつなぐ道が存在する.
( 19 点) \(N \le 1000\) , \(M \le 1000\) .
( 15 点) M = N − 1 .さらに, (1, 2, ..., N) を並べ替えて得られるある順列 P = (P 1 , P 2 , ..., P N ) が存在し,各 i = 1, 2, ..., N − 1 について, P i と P i+1 をつなぐ道が存在する.
( 17 点) 各街について,その街と直接道でつながれている街は高々 2 つである.
( 37 点) 追加の制約はない.
入力は以下の形式で与えられる.
N M
A 1 B 1
A 2 B 2
:
A M B M
N 行出力せよ. k ( \(1 \le k \le N\) ) 行目には, s = k のときビ太郎がどのような旅行計画を立てたとしても到達できない街の個数を出力せよ.
4 4
1 2
1 3
1 4
3 4
0
3
0
3
2 0
1
1
4 3
1 3
3 4
2 4
2
1
1
3
6 6
1 4
1 3
2 4
2 5
3 6
5 6
1
1
3
5
3
5