#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } const long long MAX = 5100000; const long long INF = 1LL << 60; const long long MOD = 1'000'000'007LL; const long long mod = 998244353LL; using namespace std; typedef unsigned long long ull; typedef long long ll; int main() { string x; cin >> x; sort(x.rbegin(), x.rend()); if (prev_permutation(x.begin(), x.end())) { if (x[0] == '0') { puts("-1"); } else { cout << x << endl; } } else { puts("-1"); } return 0; }