#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5;
int n;
struct mapp{
int data,i,nex,fr;
bool vis=0;
}a[N];
bool empty(){
for (int i=1;i<=n;i++){
if (a[i].data!=-1){
return 0;
}
}
return 1;
}
signed main(){
cin>>n;
a[0].nex=1;
for (int i=1;i<=n;i++){
cin>>a[i].data;
a[i].i=i;a[i].fr=i-1;a[i].nex=i+1;
}//建链表
while(!empty()){//没被删空时就继续遍历
for (int j=a[0].nex;j<=n;j){//便利
if (a[j].data!=a[a[j].fr].data){//当前面的值与本身不同时
a[j].vis=1;//标记
cout<<a[j].i<<' ';
}
j=a[j].nex;
}
for (int j=1;j<=n;j++){//删除标记过的数
if (a[j].vis){
a[a[j].fr].nex=a[j].nex;
a[a[j].nex].fr=a[j].fr;
a[j].fr=0;a[j].nex=0;
a[j].vis=0;
a[j].data=-1;
}
}
cout<<endl;
}
system("pause");
return 0;
}
大佬求调