#icpc2015summerday2j. [icpc2015summer_day2_j]連結

[icpc2015summer_day2_j]連結

Problem Statement

NN 個の頂点からなるグラフがある。頂点は 1,2,...,N1,\\ 2,\\ ...,\\ N と番号が振られている。ii (1leqileqN1\\leq i\\leq N) 番目の頂点は非負整数の重み aia_i をもつ。

はじめ、グラフには辺がない。あなたはグラフに無向辺を追加していくことができる。グラフに追加できる辺の候補は MM 本ある。辺は 1,2,...,M1,\\ 2,\\ ...,\\ M と番号が振られている。ii (1leqileqM1\\leq i\\leq M) 番目の辺は、頂点 xix_iyiy_i を端点とし、非負整数の重み ziz_i をもつ。

あなたの目標は、すべての頂点を連結にすることである。そのために、まだグラフに追加していない辺のうちちょうど 11 本を選んでグラフに追加する、という操作を任意の回数行うことができる。ただし、どの瞬間においても次の条件が成り立っていなければならない。

  • グラフのどの連結成分についても、(頂点の重みの総和)geq(辺の重みの総和)(頂点の重みの総和)\\geq(辺の重みの総和) である。

すべての頂点を連結にできるか判定せよ。できるならば、グラフに辺を追加していく方法を一つ出力せよ。

Constraints

  • 2leqNleq1052\\leq N\\leq10^5
  • aia_i は整数,0leqaileq1090\\leq a_i\\leq10^9
  • 1leqMleq1051\\leq M\\leq10^5
  • 1leqxi<yileqN1\\leq x_i<y_i\\leq N
  • ziz_i は整数,0leqzileq1090\\leq z_i\\leq10^9

Input Format

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

NN MM a1a_1 a2a_2 ...... aNa_N x1x_1 y1y_1 z1z_1 x2x_2 y2y_2 z2z_2 :: xMx_M yMy_M zMz_M

Output Format

すべての頂点を連結にできないならば、-1 とだけ一行に出力せよ。

すべての頂点を連結にできるならば、グラフに辺を追加していく方法を一つ次のように出力せよ。

  • 11 行目には、グラフに追加する辺の本数 mm (1leqmleqM1\\leq m\\leq M) を出力せよ。
  • 22 行目からの mm 行のうち kk 行目には、kk 番目にグラフに追加する辺の番号 iki_k (1leqikleqM1\\leq i_k\\leq M) を出力せよ。

Sample Input 1


4 3
50 0 0 50
1 2 0
2 3 100
3 4 0

Sample Output 1


3
1
3
2

22 番目の辺を追加するのは最後でなければならない。


Sample Input 2


2 3
50 50
1 2 100
1 2 101
1 2 102

Sample Output 2


1
1

多重辺が含まれている。


Sample Input 3


3 1
50 50 50
1 2 100

Sample Output 3


-1

すべての辺をグラフに追加しても、すべての頂点を連結にできない。