#include<iostream>
using namespace std;
struct wa{
int num;
int pos;
};
int m31()
{
int n,x,p=0,temp =1,t=0,q;
cin>>n;
wa w[n+1]; //创建结构体
int a[n+1];
for(int i=1;i<=n;i++){
cin>>x;
a[i] = x;
if(x == 0 )
{
p = i;
}
else{
w[x].num = x; //编号
w[x].pos = i; //位置
}
}
int m=0;
q=n;
n--;
while(n--)
{
m = w[temp].pos; //跳跃前的位置,即空出来了
a[m] = 0;
// t = w[temp].num;
w[temp].pos = p; //跳跃后的位置
a[p] = w[temp].num;
// cout<<m<<"~~~~~"<<p<<endl;
p = m;
temp++;
// for(int i=1;i<=q;i++) cout<<a[i]<<" ";
// cout<<endl;
}
for(int i=1;i<=q;i++) cout<<a[i]<<" ";
// cout<<endl;
return 0;
}