#include<bits/stdc++.h>
using namespace std;
struct node
{
int b,f;
}a[200005];
int n;
node tmp[200005];
bool vis[200005]={0};
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].b;
a[i].f=i;
}
a[0].b=-1;
int cnt=1;
while(cnt!=0){
for(int i=1;i<=n;i++)
{
tmp[i].b=-1;
}
for(int i=1;i<=n;i++)
{
cout<<a[i].b<<" ";
}
cout<<endl;
for(int i=1;i<=n;i++){
if(a[i].b!=a[i-1].b)cout<<a[i].f<<" ",vis[a[i].f]=1;
}
cnt=0;
for(int i=1;i<=n;i++){
if(vis[a[i].f]==0) tmp[++cnt].b=a[i].b,tmp[++cnt].f=a[i].f;
}
n=cnt;
for(int i=1;i<=n;i++){
a[i].b=tmp[i].b;
a[i].f=tmp[i].f;
}
cout<<endl;
}
return 0;
}
输出一堆-1