#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;
}