#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
struct node{
int sum,id;
};
int n;
node a[maxn],b[maxn];
int vis[maxn];
int main(){
scanf("%d",&n);int t=n;
for(int i=1;i<=n;i++){
scanf("%d",&a[i].sum);
a[i].id=i;
}
int opo=n,cnt=0;
b[1].id=a[1].id;
while(opo>1){
if(a[1].id!=0) {
printf("%d ",a[1].id);opo--;
vis[a[1].id]=1;
}
for(int i=1;i<=n-1;i++){
if(a[i].sum!=a[i+1].sum){
opo--;
if(a[i+1].id!=0) {
printf("%d ",a[i+1].id);
vis[a[i+1].id]=1;
}
}
else{
cnt++;
b[cnt].sum=a[i+1].sum;
b[cnt].id=a[i+1].id;
}
}n=cnt;
for(int i=1;i<=n;i++){
a[i].sum=b[i].sum;
a[i].id=b[i].id;
}memset(b,0,sizeof(b));
printf("\n");
}
for(int i=1;i<=t;i++){
if(vis[i]==0){
printf("%d",i);
}
}
return 0;
}