#include<stdio.h>
#include<queue>
using namespace std;
const int maxn = 200001;
struct node{
int l,r,num;
};
int n, t;
queue<node> q;
int main(){
scanf("%d", &n);
int flag=-1;
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 len = q.size(), flag=-1;
for(int i=1;i<=len;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;
}