#include<bits/stdc++.h>
using namespace std;
struct node{
int id,str;
};
vector<int> ans;
vector<node> a;
int read(){
int x=0;
char c=getchar();
while(c>='0'&&c<='9'){
x=x*10+(c^48);
c=getchar();
}
return x;
}
void write(int x){
if(x>9) write(x/10);
putchar(x%10+'0');
}
int main(){
int n=read();
for(int i=1;i<=n;i++){
int x=read();
a.push_back({i,x});
}
while(!a.empty()){
int now_str=2,mini=0;
for(int i=0;i<a.size();i++){
if(a[i].str!=now_str&&a[i].id>mini){
ans.push_back(a[i].id);
now_str=a[i].str;
mini=a[i].id;
a.erase(a.begin()+i);
i--;
continue;
}
}
for(int i=0;i<ans.size();i++){
write(ans[i]),putchar(' ');
ans.erase(ans.begin());
i--;
}
putchar('\n');
}
return 0;
}