#include<bits/stdc++.h>
using namespace std;
int n, len, head = 1;
typedef struct DLNode{
struct fruit{
int num, ao;
}data;
DLNode *nxt, *prior;
}DLNode, *LinkList;
LinkList L, s, R;
void init(){
L = new DLNode;
L->nxt = NULL;
R = L;
cin >> n;
len = n;
for(int i = 1; i <= n; i++){
s = new DLNode;
scanf("%d", &s->data.ao);
s->data.num = i;
R->nxt = s;
s->prior = R;
R = s;
}
R->nxt = NULL;
}
void del(LinkList p){
cout << p->data.num << ' ';
if(len == 1)
exit(0);
if(p == L->nxt){
LinkList tem = L->nxt;
tem->nxt->prior = L;
L = L->nxt;
L->prior = NULL;
free(L->prior);
}
else if(p == R){
R = R->prior;
free(R->nxt);
R->nxt = NULL;
}
else {
LinkList q;
q = p->nxt;
p->prior->nxt = q;
q->prior = p->prior;
free(p);
}
len--;
}
int main(){
init();
while(len){
int F = 1 - L->nxt->data.ao;
LinkList p = L->nxt;
for(; p ; )
if(p && p->data.ao != F){
if(p != R){
p = p->nxt;
del(p->prior);
}
else{
del(p);
break;
}
F = 1 - F;
}
else p = p->nxt;
cout << endl;
}
return 0;
}