#include<iostream> #include<algorithm> using namespace std; int N,P,Q; int A[2<<17]; int index(int X) { for(int i=0;i<N;i++)if(A[i]==X)return i; } void output() { for(int i=0;i<N;i++)cout<<A[i]<<(i+1==N?"":" "); cout<<endl; } main() { cin>>N>>P>>Q; for(int i=0;i<N;i++)cin>>A[i]; if(!next_permutation(A,A+N)) { cout<<-1<<endl; return 0; } if(index(P)<index(Q)); else { int inv=index(Q); int cummax=0; for(int i=N-1;i>inv;i--)cummax=max(cummax,A[i]); for(int i=inv;;i--) { if(i<0) { cout<<-1<<endl; return 0; } cummax=max(cummax,A[i]); if(cummax>A[i]) { sort(A+i+1,A+N); reverse(A+i+1,A+N); next_permutation(A+i,A+N); int ip=index(P),iq=index(Q); if(iq==i) { sort(A+i+1,A+N); reverse(A+i+1,A+N); next_permutation(A+i,A+N); ip=index(P),iq=index(Q); } if(ip<iq)break; else { rotate(A+iq,A+iq+1,A+ip+1); break; } } } } output(); }