#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=10086;
ll sum1[N],sum2[N],n,m;
int vis[N],v[N];
ll len1,len2;
set <ll> s1;
set <ll> s2;
void init(){
len1=len2=0;
for(auto p:s1){
sum1[++len1]=p;
}
for(auto p:s2){
sum2[++len2]=p;
}
for(int i=1;i<=len1;i++){
s1.erase(sum1[i]);
}
for(int i=1;i<=len2;i++){
s2.erase(sum2[i]);
}
return ;
}
void ended(){
for(int i=1;i<=len1;i++){
if(vis[sum1[i]]==0) s1.insert(sum1[i]);
}
for(int i=1;i<=len2;i++){
if(vis[sum2[i]]==0) s2.insert(sum2[i]);
}
}
ll found(int id,ll sum){
ll ans;
if(id==1){
ll l=0,r=len1,mid;
while(l<=r){
mid=(l+r)/2;
if(sum1[mid]>=sum){
ans=mid;
r=mid-1;
}
else l=mid+1;
}
return sum1[ans];
}
else{
ll l=0,r=len2,mid;
while(l<=r){
mid=(l+r)/2;
if(sum2[mid]>=sum){
ans=mid;
r=mid-1;
}
else l=mid+1;
}
return sum2[ans];
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>m;
if(m==1){
len1++;
s1.insert(i);
}
else{
len2++;
s2.insert(i);
}
}
while(len1!=0&&len2!=0){
init();
memset(vis,0,sizeof vis);
int id;
if(sum1[1]<sum2[1]){
ll cnt=sum1[1];
id=1;
while(true){
if(v[cnt]==0) cout<<cnt<<" ";
vis[cnt]=1;
v[cnt]=1;
if(id==1) id=0;
else id=1;
ll leg=found(id,cnt);
if(leg<=cnt) break;
cnt=leg;
}
}
else{
ll cnt=sum2[1];
id=0;
while(true){
if(v[cnt]==0) cout<<cnt<<" ";
vis[cnt]=1;
v[cnt]=1;
if(id==1) id=0;
else id=1;
ll leg=found(id,cnt);
if(leg<=cnt) break;
cnt=leg;
}
}
cout<<endl;
ended();
}
if(s1.size()!=0){
for(auto p:s1){
cout<<p<<endl;
}
}
if(s2.size()!=0){
for(auto p:s2){
cout<<p<<endl;
}
}
return 0;
}