#include <bits/stdc++.h>
using namespace std;
map<long long int, long long int> mymap;
long long int hashit[200005];
vector<long long int> adjlist[200005];
int main() {
  long long int n;
  scanf("%lld", &n);
  set<long long int> st;
  long long int i, j;
  long long int arr[n + 1];
  for (i = 0; i < n; i++) scanf("%lld", &arr[i]);
  long long int cnt = 1;
  st.insert(arr[0]);
  adjlist[1].push_back(arr[0]);
  mymap[arr[0]] = 1;
  for (i = 1; i < n; i++) {
    set<long long int>::iterator it;
    it = st.lower_bound(arr[i]);
    if (it == st.begin()) {
      cnt++;
      st.insert(arr[i]);
      adjlist[cnt].push_back(arr[i]);
      mymap[arr[i]] = cnt;
    } else {
      it--;
      mymap[arr[i]] = mymap[*it];
      adjlist[mymap[*it]].push_back(arr[i]);
      st.erase(it);
      st.insert(arr[i]);
    }
  }
  for (i = 1; i <= n; i++) {
    for (j = 0; j < adjlist[i].size(); j++) {
      cout << adjlist[i][j] << " ";
    }
    cout << endl;
  }
  return 0;
}
