#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 9;
vector<int> v[N];
int a[N];
int main() {
  int x;
  cin >> x;
  for (int i = 0; i < x; i++) cin >> a[i];
  int idx = 0;
  multiset<pair<int, int>> st;
  for (int i = 0; i < x; i++) {
    auto it = st.lower_bound({a[i], 0});
    if (it != st.begin()) {
      it--;
      pair<int, int> t = *it;
      st.erase(it);
      v[t.second].push_back(a[i]);
      st.insert({a[i], t.second});
    } else {
      v[idx].push_back(a[i]);
      st.insert({a[i], idx});
      idx++;
    }
  }
  for (int i = 0; i < idx; i++) {
    for (int j = 0; j < v[i].size(); j++) {
      cout << v[i][j] << " ";
    }
    cout << '\n';
  }
  return 0;
}
