#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 100;
const int inf = 1e9 + 7;
const long long mod = 998244353;
int c[maxn];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> c[i];
  }
  int n2 = n - (n % 2);
  vector<vector<int> > finalans;
  for (int i = 0; i < n2; i++) {
    vector<int> ans;
    int pos = -1;
    for (int j = 0; j < n; j++) {
      if (c[j] == i + 1) {
        pos = j;
        break;
      }
    }
    for (int j = 0; j < i; j++) {
      ans.push_back(1);
    }
    ans.push_back(pos - i + 1);
    for (int j = 0; j < n - pos - 1; j++) {
      ans.push_back(1);
    }
    reverse(c + i, c + pos + 1);
    if (i % 2 == 1) {
      reverse(ans.begin(), ans.end());
    }
    if (ans.size() > 1) {
      finalans.push_back(ans);
    }
  }
  cout << finalans.size() << '\n';
  for (vector<int> ans : finalans) {
    cout << ans.size() << " ";
    for (int i = 0; i < ans.size(); i++) {
      cout << ans[i] << " ";
    }
    cout << endl;
  }
}
