#include <bits/stdc++.h>
using namespace std;
int N;
vector<int> ans[200005];
int sz = 0;
set<pair<int, int> > st;
int main() {
  ios::sync_with_stdio(0);
  cin >> N;
  for (int i = 0, a; i < N; i++) {
    cin >> a;
    if (st.empty()) {
      ans[sz].push_back(a);
      st.insert(make_pair(a, sz));
      sz++;
    } else {
      set<pair<int, int> >::iterator it = st.lower_bound(make_pair(a, 0));
      if (it == st.begin()) {
        ans[sz].push_back(a);
        st.insert(make_pair(a, sz));
        sz++;
      } else {
        it--;
        ans[it->second].push_back(a);
        st.insert(make_pair(a, it->second));
        st.erase(it);
      }
    }
  }
  for (int i = 0; i < sz; i++) {
    for (int j = 0; j < ans[i].size(); j++) cout << ans[i][j] << " ";
    cout << "\n";
  }
  return 0;
}
