#include using namespace std; #define rep(i,a,b) for(ll i=a;i=b;i--) #define ll long long #define ull unsigned ll #define ld long double #define bl __int128_t #define fi first #define se second #define vel vector #define vvel vector #define pll pair #define vepll vector #define vvepll vector #define ves vector #define vem vector #define vvem vector #define pmm pair #define cleout(i) cout<using PQ=priority_queue,greater>; // 上 右 下 左 vector di={-1, 0, 1, 0}; vector dj={ 0, 1, 0,-1}; vector dx={ 0, 1, 0,-1}; vector dy={ 1, 0,-1, 0}; vector ddx={ 1, 1, 1, 0, -1, -1, -1, 0 }; vector ddy={ 1, 0, -1, -1, -1, 0, 1, 1 }; ll inf=1000000000000000000;//1e18 // LLONG_MAX mt19937_64 rng((ull)chrono::steady_clock::now().time_since_epoch().count()); void solve(ll N,vel &r,vel &c){ vel ic(N); rep(i,0,N)ic[c[i]]=i; vvel ans; ans.push_back(r); rep(i,0,N){ vel v; rep(j,0,N){ if(j+1ic[r[j+1]]){ swap(r[j],r[j+1]); v.push_back(r[j]); v.push_back(r[j+1]); j++; }else{ v.push_back(r[j]); } } ans.push_back(v); } rep(i,0,N){ if(ans.back()[i]!=c[i]){ cout<<"-1\n"; return ; } } for(vel v:ans){ for(ll x:v)cout<>N; vel r(N),c(N); rep(i,0,N){ cin>>r[i]; r[i]--; } rep(i,0,N){ cin>>c[i]; c[i]--; } vel ic(N); rep(i,0,N)ic[c[i]]=i; vvel ans; ans.push_back(r); rep(i,0,N){ vel v; priority_queue pq; rep(j,0,N){ pq.push({abs(ic[r[j]]-j),j}); } vel ok(N,1); while(pq.size()){ ll j=pq.top().se; pq.pop(); if(ok[j]==0)continue; if(ic[r[j]]=0&&ok[j-1]&&ic[r[j-1]]>ic[r[j]]){ ok[j]=0; ok[j-1]=0; swap(r[j],r[j-1]); } }else if(ic[r[j]]>j){ if(j+1ic[r[j+1]]){ ok[j]=0; ok[j+1]=0; swap(r[j],r[j+1]); } } } ans.push_back(r); } rep(i,0,N){ if(ans.back()[i]!=c[i]){ solve(N,r,c); return ; } } for(vel v:ans){ for(ll x:v)cout<>_; else _=1; rep(__,0,_){ _solve(); } }