#include<bits/stdc++.h>
using namespace std;
void read(int &x)
{
int f=1;
x=0;
char ch=getchar();
while((ch>'9'||ch<'0')&&ch!='-')
{
ch=getchar();
}
if(ch=='-')
{
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x*=10;
x+=ch-'0';
ch=getchar();
}
x*=f;
}
struct gz{
int l,r,kl,kr;
int lb;
bool pd=0;
}a[int(2*1e5+1)];
int main()
{
int n,t=1,yt=1;
read(n);
for(int j=1;j<=n;j++)
{
read(a[j].lb);
}
for(int j=1;j<=n;j++)
{
int bj=1;
if(a[bj].lb!=a[j].lb)
{
a[bj].kr=j;
a[j].kl=bj;
bj=j;
}
else
{
a[j].kl=a[bj].kl;
a[j].kr=a[bj].kr;
a[j].l=j-1;
a[j-1].r=j;
}
}
while(n)
{
t=yt;
while(t!=0)
{
a[t].pd=1;
printf("%d ",t);
t=a[t].kr;
n--;
}
printf("\n");
while(a[yt].pd)
{
yt=a[yt].r;
}
for(int i=1;i<=n;i++)
{
if(!a[i].pd)
{
int t=a[i].kr;
while(a[t].r!=0&&a[t].pd)
{
t=a[t].r;
}
if(a[t].pd)
{
a[a[t].kl].kr=a[a[t].kr].kr;
}
}
}
}
return 0;
}