#include <bits/stdc++.h> #define ll long long int #define ld long double using namespace std; void mainSolve() { ll n; cin >> n; vector<ll> v(n); for (int i = 0; i < n; i++) cin >> v[i]; vector<vector<ll>> ans; vector<ll> sub; while (true) { ll max_val = 0; for (ll x : v) max_val = max(max_val, x); if (max_val == 0) break; vector<ll> ss; ll min_index = 0; ll min_val = max_val; for (int i = 0; i < n; i++) { if (v[i] == max_val) min_index = i; } for (int i = 0; i < n; i++) { if (v[i] > (max_val / 2)) { ss.push_back(i); if (v[i] <= v[min_index]) min_index = i; } } min_val = v[min_index]; ans.push_back(ss); sub.push_back(min_index); for (ll x : ss) v[x] -= min_val; } cout << ans.size() << endl; for (int i = 0; i < (ans.size()); i++) { vector<ll> ss = ans[i]; cout << (ss.size()) << endl; for (ll x : ss) cout << (x + 1) << " "; cout << endl; cout << "- " << (sub[i] + 1) << endl; } } int main() { #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int t; t = 1; while (t--) { mainSolve(); } return 0; }