AT_abc432_f [ABC432F] Candy Redistribution

Description

$ N $ 人の子供がいます。子供たちには $ 1 $ から $ N $ までの番号が付けられています。 子供 $ i $ は飴を $ A_i $ 個持っています。 あなたの目標は、以下の操作をできるだけ少ない回数実行し、最終的に $ N $ 人の子供全員が同数の飴を持っている状態にすることです。 - 相異なる $ 2 $ 人の子供 $ x,y $ を選び、子供 $ x $ が持っている飴の個数以下の正の整数 $ z $ を選ぶ。子供 $ x $ が持っている飴のうち $ z $ 個を回収し、子供 $ y $ に渡す。 最終的に $ N $ 人の子供全員が同数の飴を持っている状態になる操作列が存在するか判定してください。存在する場合は、そのうち操作回数が最小になるようなものを $ 1 $ つ求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ \dots $ $ A_N $

Output Format

最終的に $ N $ 人の子供全員が同数の飴を持っている状態になる操作列が存在しない場合、`-1` を出力せよ。 存在する場合、そのうち操作回数が最小になるものを以下の形式で出力せよ。 > $ q $ $ x_1 $ $ y_1 $ $ z_1 $ $ \vdots $ $ x_q $ $ y_q $ $ z_q $ ここで、 $ q $ は操作回数を表し、 $ x_i,y_i,z_i $ は $ i $ 回目の操作で選ぶ $ x,y,z $ の値を表す。 解が複数存在するときは、どれを出力しても正解とみなされる。

Explanation/Hint

### Sample Explanation 1 この出力例では、以下のように操作が実行されます。 1. 子供 $ 2 $ から飴を $ 1 $ 個回収し、子供 $ 3 $ に渡す。この直後、各子供が持つ飴の個数は $ 1,6,5,8 $ になっている。 2. 子供 $ 2 $ から飴を $ 1 $ 個回収し、子供 $ 4 $ に渡す。この直後、各子供が持つ飴の個数は $ 1,5,5,9 $ になっている。 3. 子供 $ 4 $ から飴を $ 4 $ 個回収し、子供 $ 1 $ に渡す。この直後、各子供が持つ飴の個数は $ 5,5,5,5 $ になっている。 これによって、最終的に $ N $ 人の子供全員が飴をちょうど $ 5 $ 個ずつ持っている状態になります。 ### Constraints - $ 2 \leq N \leq 20 $ - $ 1 \leq A_i \leq 10^8 $ - 入力される値はすべて整数