#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; int main() { int n, p, q; cin>>n>>p>>q; vector a(n); for(int i=0; i>a[i]; } if(!next_permutation(a.begin(), a.end())){ cout<<-1<p){ int imn=-1; for(int i=iq+1; ia[i]){ imn=i; } } if(imn==-1){ set st; for(int i=n-1; i>=iq+1; i--){ st.insert(a[i]); } vector ans; for(int i=iq-1; i>=0; i--){ auto itr=st.lower_bound(a[i]); if(itr!=st.end()){ int x=*itr; for(int j=0; ja[i]){ imn=i; } } swap(a[iq], a[imn]); sort(a.begin()+iq+1, a.end()); if(imn==ip){ for(int i=0; i ans; for(int i=0; i