#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ppb pop_back
#define pf push_front
#define ppf pop_front
#define nl "\n"
#define all(x) (x).begin(),(x).end()
#define sz(x) (int)((x).size())
#define pii pair<ll, ll>
#define mem1(a) memset(a,-1,sizeof(a))
#define mem0(a) memset(a,0,sizeof(a))
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
const long long INF=1e18;
const int32_t M=1e9+7;
const int32_t MM=998244353;
void run_case(){
int n;
cin >> n;
vector<int> a(n + 1);
int sum = 0;
for(int i = 1; i <= n; ++i) {
cin >> a[i];
sum += a[i];
}
if(sum % n) {
cout << -1 << nl;
return;
}
vector<vector<int>> ops;
for(int i = 2; i <= n; ++i) {
if(a[i] == 0)
continue;
if(a[i] % i)
ops.pb({1, i, i - (a[i] % i)});
ops.pb({i, 1, (a[i] + i - 1) / i});
}
int val = sum / n;
for(int i = 2; i <= n; ++i) {
ops.pb({1, i, val});
}
cout << ops.size() << nl;
for(auto v: ops) {
for(auto x : v)
cout << x << " ";
cout << nl;
}
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int tests;
cin >> tests;
while(tests--){
run_case();
}
}
589. N-ary Tree Preorder Traversal | 1299. Replace Elements with Greatest Element on Right Side |
1768. Merge Strings Alternately | 561. Array Partition I |
1374. Generate a String With Characters That Have Odd Counts | 1822. Sign of the Product of an Array |
1464. Maximum Product of Two Elements in an Array | 1323. Maximum 69 Number |
832. Flipping an Image | 1295. Find Numbers with Even Number of Digits |
1704. Determine if String Halves Are Alike | 1732. Find the Highest Altitude |
709. To Lower Case | 1688. Count of Matches in Tournament |
1684. Count the Number of Consistent Strings | 1588. Sum of All Odd Length Subarrays |
1662. Check If Two String Arrays are Equivalent | 1832. Check if the Sentence Is Pangram |
1678. Goal Parser Interpretation | 1389. Create Target Array in the Given Order |
1313. Decompress Run-Length Encoded List | 1281. Subtract the Product and Sum of Digits of an Integer |
1342. Number of Steps to Reduce a Number to Zero | 1528. Shuffle String |
1365. How Many Numbers Are Smaller Than the Current Number | 771. Jewels and Stones |
1512. Number of Good Pairs | 672. Richest Customer Wealth |
1470. Shuffle the Array | 1431. Kids With the Greatest Number of Candies |