#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
int l , r , num;
};
int n , t;
queue<node> q;
int main(){
scanf("%d" , &n);
int flag = 2;
for(int i = 1; i <= n; i++){
scanf("%d" , &t);
if(t != flag){
q.push(node{i , i , t});
flag = t;
} else {
q.back().r = i;
}
}
while(!q.empty()){
int k = q.size();
int flag = 2;
for(int i = 1; i <= k; i++){
if(q.front().num != flag){
printf("%d " , q.front().l);
q.front().l++;
flag = q.front().num;
}
if(q.front().l <= q.front().r){
q.push(q.front());
}
q.pop();
}
printf("\n");
}
return 0;
}