atcoder#AGC002D. [AGC002D] Stamp Rally

[AGC002D] Stamp Rally

問題文

NN 頂点 MM 辺の無向グラフがあります。 頂点は 11 から NN まで番号が振られています。 辺は 11 から MM まで番号が振られています。 辺 ii は頂点 aia_ibib_i を結んでいます。 グラフは連結です。

このグラフの上で、QQ 組の兄弟がスタンプラリーをします。 jj 組目の兄弟は次のようなスタンプラリーをします。

  • 最初、兄は頂点 xjx_j に、弟は頂点 yjy_j にいる。
  • 兄弟でちょうど zjz_j 個の頂点を訪れる。 ただし、同一の頂点を兄弟ともに訪れた場合でも、22 個の頂点を訪れたとは見なさない。
  • 兄または弟が通った辺の番号の最大値がスコアとなる。 兄弟はこのスコアをできるだけ小さくする。

それぞれの兄弟のスコアを求めてください。

制約

  • 3N1053 \leq N \leq 10^5
  • N1M105N-1 \leq M \leq 10^5
  • 1ai<biN1 \leq a_i < b_i \leq N
  • グラフは連結である。
  • 1Q1051 \leq Q \leq 10^5
  • 1xj<yjN1 \leq x_j < y_j \leq N
  • 3zjN3 \leq z_j \leq N

入力

入力は以下の形式で標準入力から与えられる。

NN MM

a1a_1 b1b_1

a2a_2 b2b_2

::

aMa_M bMb_M

QQ

x1x_1 y1y_1 z1z_1

x2x_2 y2y_2 z2z_2

::

xQx_Q yQy_Q zQz_Q

出力

QQ 行出力せよ。 jj 行目には、jj 組目の兄弟のスコアを出力せよ。

入力例1

5 6
2 3
4 5
1 2
1 3
1 4
1 5
6
2 4 3
2 4 4
2 4 5
1 3 3
1 3 4
1 3 5

出力例1

1
2
3
1
5
5