#include using namespace std; using ll=long long; template inline bool chmin(T&x,U y){if(x>y){x=y;return true;}return false;} template inline bool chmax(T&x,U y){if(x=0;--i) #define iFr(i,n) for(int i=(n);i>0;--i) int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n,p,q; cin>>n>>p>>q; vector a(n+1),b(n+1); Fr(i,n) cin>>a[i],b[a[i]]=i; if(b[p] v; for(int i=b[p]+1;i<=n;++i) v.push_back(a[i]); if(next_permutation(v.begin(),v.end())){ Fr(i,b[p]) cout< v; for(int i=b[q]+1;i<=n;++i) v.push_back(a[i]); sort(v.begin(),v.end()); int I=lower_bound(v.begin(),v.end(),q)-v.begin(); if(I==v.size()){ cout<<-1<