#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int pow(int a, int b){
int ans = 1;
for(int i = 1; i <= b; i++)
ans *= a;
return ans;
}
int nextGreaterElement(int n) {
string temp = to_string(n);
int len = temp.length();
if(len == 1)
return -1;
int i;
for(i = len-1; i >= 1; i--){
if((temp[i-1]-'0') < (temp[i]-'0'))
break;
}
if(i == 0)
return -1;
i--;
cout<<i<<endl;
int j;
for(j = i+1; j < len && (temp[j]-'0') > (temp[i]-'0'); j++);
j--;
cout<<j<<endl;
char temp1 = temp[i];
temp[i] = temp[j];
temp[j] = temp1;
for(int x = 0; x < len; x++)
cout<<temp[x];
cout<<endl;
string temp2 = temp.substr(i+1,len-1-i);
sort(temp.begin()+i+1,temp.end());
int ans = 0;
for(int i = len-1; i >= 0; i--){
int no1 = temp[i] - '0';
ans += no1*pow(10,len-1-i);
}
return ans;
}
int main(){
int n = 21;
cout<<nextGreaterElement(n)<<endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBwb3coaW50IGEsIGludCBiKXsKCWludCBhbnMgPSAxOwoJZm9yKGludCBpID0gMTsgaSA8PSBiOyBpKyspCgkJYW5zICo9IGE7CglyZXR1cm4gYW5zOwp9CgppbnQgbmV4dEdyZWF0ZXJFbGVtZW50KGludCBuKSB7CiAgICAgICAgc3RyaW5nIHRlbXAgPSB0b19zdHJpbmcobik7CiAgICAgICAgaW50IGxlbiA9IHRlbXAubGVuZ3RoKCk7CiAgICAgICAgaWYobGVuID09IDEpCiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICBpbnQgaTsKICAgICAgICBmb3IoaSA9IGxlbi0xOyBpID49IDE7IGktLSl7CiAgICAgICAgICAgIGlmKCh0ZW1wW2ktMV0tJzAnKSA8ICh0ZW1wW2ldLScwJykpCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYoaSA9PSAwKQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgaS0tOwogICAgICAgIGNvdXQ8PGk8PGVuZGw7CiAgICAgICAgaW50IGo7CiAgICAgICAgZm9yKGogPSBpKzE7IGogPCBsZW4gJiYgKHRlbXBbal0tJzAnKSA+ICh0ZW1wW2ldLScwJyk7IGorKyk7CiAgICAgICAgai0tOwogICAgICAgIGNvdXQ8PGo8PGVuZGw7CiAgICAgICAgY2hhciB0ZW1wMSA9IHRlbXBbaV07CiAgICAgICAgdGVtcFtpXSA9IHRlbXBbal07CiAgICAgICAgdGVtcFtqXSA9IHRlbXAxOwogICAgICAgIGZvcihpbnQgeCA9IDA7IHggPCBsZW47IHgrKykKICAgICAgICAJY291dDw8dGVtcFt4XTsKICAgICAgICBjb3V0PDxlbmRsOwogICAgICAgIHN0cmluZyB0ZW1wMiA9IHRlbXAuc3Vic3RyKGkrMSxsZW4tMS1pKTsKICAgICAgICBzb3J0KHRlbXAuYmVnaW4oKStpKzEsdGVtcC5lbmQoKSk7CiAgICAgICAgaW50IGFucyA9IDA7CiAgICAgICAgZm9yKGludCBpID0gbGVuLTE7IGkgPj0gMDsgaS0tKXsKICAgICAgICAgICAgaW50IG5vMSA9IHRlbXBbaV0gLSAnMCc7CiAgICAgICAgICAgIGFucyArPSBubzEqcG93KDEwLGxlbi0xLWkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYW5zOwogICAgfQoKaW50IG1haW4oKXsKCWludCBuID0gMjE7Cgljb3V0PDxuZXh0R3JlYXRlckVsZW1lbnQobik8PGVuZGw7Cn0=