#include <bits/stdc++.h>
using namespace std;
struct node{
int left;
int right;
queue <int> que;
}list[200010];
int n=0;
int curInt=0,cur=-1,j=0;
int main(){
cin >> n;
for(int i=1;i<=n;i++){
cin >> curInt;
if(curInt!=cur){
j++;
list[j].que.push(i);
cur=curInt;
}else{
list[j].que.push(i);
}
}
list[0].right=1;
list[j+1].left=j;
for(int i=1;i<=j;i++){
list[i].right=i+1;
list[i].left=i-1;
}
while(list[0].right != j+1;list[i].right){
cout << list[i].que.tail() << " ";
list[i].que.pop();
if(list[i].que.empty()){
list[list[i].left].right=list[i].right;
list[list[i].right].left=list[i].left;
while(!list[list[i].right].que.empty){
list[list[i].right].que.push(list[list[i].righr].que.taik);
list[list[i].right=list[i].right];
}
}
cout << endl;
}
return 0;
}