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