あなたは$N$棟の山小屋と各山小屋をつなぐ道を管理しています。山小屋にはそれぞれ1から$N$までの番号がついています。道は全部で$N-1$本あります。どの道も双方向に移動可能です。また、どの山小屋からでも、いくつかの道を通っていけば他の山小屋に到達できます。
あなたは、山小屋の利用客が楽しめるように、すべての山小屋にスタンプを設置して、スタンプラリーを始めることにしました。このスタンプラリーのルールは以下の通りです。
スタンプラリーを成功させるため、利用客は山小屋を巡るルートを正しく選ぶ必要があります。しかし、山小屋の選び方によっては、どのようにルートを選んでも成功できなくなってしまいます。そこで、スタンプラリーを成功させることができるような山小屋の選び方だけを認めることにしました。そのような山小屋の選び方はどれくらいあるでしょうか。
山小屋の数と、山小屋同士を直接つなぐ道の情報が与えられる。山小屋を2棟から$N$棟までそれぞれ選ぶとき、選んだ山小屋の数ごとに、スタンプラリーを成功させることができるような山小屋の選び方の数を求めるプログラムを作成せよ。
入力は以下の形式で与えられる。
$N$ $s_1$ $t_1$ $s_2$ $t_2$ : $s_{N-1}$ $t_{N-1}$
1行目に山小屋の数$N$ ($2 \leq N \leq 200,000$)が与えられる。続く$N-1$行に、2つの山小屋を直接つなぐ道の情報が与えられる。$s_i$と$t_i$ ($1 \leq si < t_i \leq N$)は$i$番目の道がつなぐ2つの山小屋の番号である。ただし、どの2つの山小屋についても、それらを直接つなぐ道は1本以下とする。
出力は$N-1$行である。$i$行目に、山小屋を$i+1$棟選んだ場合の、スタンプラリーを成功させることができるような山小屋の選び方の数を、998,244,353で割った余りを出力する。
5 1 2 2 3 3 4 3 5
10 8 2 0