#include <bits/stdc++.h>
using namespace std;
struct as{
int id,ke;
}a[200005];
int main(){
// freopen("fruit.in","r",stdin);
// freopen("fruit.out","w",stdout);
int n,q;
scanf("%d",&n);
for (int i=1;i<=n;i++){
scanf("%d",&q);
a[i].id=i;
a[i].ke=q;
}
int len=n;
//return 0;
while(len>=1){
for (int i=1;i<=len;i++){
//printf("%d ",a[i].id);
}
//printf("\n%d\n",len);
int cs=a[1].ke,la=1;
for (register int i=2;i<=len;i++){
if (a[i].ke!=cs){
printf("%d ",a[la].id);
a[la].ke=-1;
la=i;
cs=a[i].ke;
}
}
printf("%d\n",a[la].id);
int qwq=0;
a[la].ke=-1;
for (register int i=1;i<=len;i++){
if (a[i].ke==-1){
qwq++;
continue ;
}
else {
a[i-qwq].ke=a[i].ke;
a[i-qwq].id=a[i].id;
}
}
len-=qwq;
}
/*int cs=a[1],la=1,qwq=0;
for (int i=1;i<=n;i++){
if (a[i]!=-1){
cs=a[i];
la=i;
break;
}
}
//for (register int i=1;i<=n;i++) cout << a[i] << ' ';
//cout << endl;
for (int i=la+1;i<=n;i++){
if (a[i]==-1) continue ;
//cout << i << ' ';
if (a[i]!=cs) {
cs=a[i];
a[la]=-1;
qwq++;
printf("%d ",la);
la=i;
}
}
len-=qwq+1;
printf("%d\n",la);
a[la]=-1;
}*/
return 0;
}