1. #include <bits/stdc++.h>
  2. #define ll long long int
  3. #define ld long double
  4. using namespace std;
  5.  
  6. void mainSolve()
  7. {
  8. ll n;
  9. cin >> n;
  10. vector<ll> v(n);
  11. for (int i = 0; i < n; i++)
  12. cin >> v[i];
  13. vector<vector<ll>> ans;
  14. vector<ll> sub;
  15. while (true)
  16. {
  17. ll max_val = 0;
  18. for (ll x : v)
  19. max_val = max(max_val, x);
  20. if (max_val == 0)
  21. break;
  22. vector<ll> ss;
  23. ll min_index = 0;
  24. ll min_val = max_val;
  25. for (int i = 0; i < n; i++)
  26. {
  27. if (v[i] == max_val)
  28. min_index = i;
  29. }
  30. for (int i = 0; i < n; i++)
  31. {
  32. if (v[i] > (max_val / 2))
  33. {
  34. ss.push_back(i);
  35. if (v[i] <= v[min_index])
  36. min_index = i;
  37. }
  38.  
  39. }
  40. min_val = v[min_index];
  41. ans.push_back(ss);
  42. sub.push_back(min_index);
  43. for (ll x : ss)
  44. v[x] -= min_val;
  45.  
  46. }
  47. cout << ans.size() << endl;
  48. for (int i = 0; i < (ans.size()); i++)
  49. {
  50. vector<ll> ss = ans[i];
  51. cout << (ss.size()) << endl;
  52. for (ll x : ss)
  53. cout << (x + 1) << " ";
  54. cout << endl;
  55. cout << "- " << (sub[i] + 1) << endl;
  56. }
  57. }
  58.  
  59. int main()
  60. {
  61. #ifndef ONLINE_JUDGE
  62. freopen("input.txt", "r", stdin);
  63. freopen("output.txt", "w", stdout);
  64. #endif
  65. int t;
  66. t = 1;
  67. while (t--)
  68. {
  69. mainSolve();
  70. }
  71. return 0;
  72. }