王秀涵有一个初始为空的无向图,图上有 $n$ 个顶点。 每个顶点都有一个权重,权重为一个非负整数。 此外,他有 $m$ 个三元组 $(a_i, b_i, s_i)$,其中 $1 \le a_i, b_i \le n$,$a_i \neq b_i$,且 $s_i$ 是一个非负整数。 之后,他开始执行以下过程:
- 如果不存在这样的 $i$,使得 $a_i$ 和 $b_i$ 位于图中的不同连通分量中,且($a_i$ 所在连通分量的顶点权重之和)+($b_i$ 所在连通分量的顶点权重之和)$\ge s_i$,则结束过程。
- 否则,选择满足上述条件的最小的 $i$,在图中添加一条连接 $a_i$ 和 $b_i$ 的边,将这个 $i$ 记在笔记本上,并重复该过程(此时基于更新后的图)。
过程结束后,发生了一件不幸的事……有人偷走了他的笔记本!你能帮他高效地恢复所有数字吗?
输入格式
第一行包含两个整数 $n$ 和 $m$:Xiuhan 图中的顶点数和三元组的数量($1 \le n, m \le 300\,000$)。 第二行包含 $n$ 个空格分隔的整数 $w_1, w_2, \dots, w_n$:顶点的权重($0 \le w_i \le 10^6$)。 接下来的 $m$ 行包含 Xiuhan 三元组的描述。每行包含三个整数 $a_i, b_i, s_i$($1 \le a_i, b_i \le n$,$a_i \neq b_i$,$0 \le s_i \le 10^6$)。
输出格式
第一行输出一个整数:Xiuhan 在笔记本上记录的数字个数。 下一行按他记录的顺序输出所有这些数字。
样例
样例输入 1
5 5 1 4 3 4 0 4 5 5 3 1 1 2 5 2 4 3 1 4 1 4
样例输出 1
4 2 3 1 4
样例输入 2
3 5 3 2 2 1 2 6 1 2 6 1 2 3 1 2 6 2 3 6
样例输出 2
2 3 5