#include <iostream>
#include <queue>
using namespace std;
struct node{
int num;
bool f,vis=0;
};
int main()
{
int n;
cin>>n;
node a[n+10];
for (int i=1;i<=n;i++){
cin>>a[i].f;
a[i].num=i;
}
queue <int>ans[n+1];
ans[1].push(1);
a[1].vis=1;
int cnt=1;
for (int i=2;i<=n;i++){
a[i].vis=1;
int last=i-1;
for (;!a[last].vis;last--){}
if(a[last].f==a[i].f){
cnt++;
}else{
cnt=1;
}
ans[cnt].push(a[i].num);
}
for (int i=1;i<=n;i++){
while (!ans[i].empty()){
cout<<ans[i].front()<<" ";
ans[i].pop();
}
cout<<endl;
}
return 0;
}