#include #define For(i, a, b) for(int (i)=(a); (i)<(b); ++(i)) #define rFor(i, a, b) for(int (i)=(a)-1; (i)>=(b); --(i)) #define rep(i, n) For((i), 0, (n)) #define rrep(i, n) rFor((i), (n), 0) #define fi first #define se second using namespace std; typedef long long lint; typedef unsigned long long ulint; typedef pair pii; typedef pair pdd; typedef pair pll; typedef complex xy_t; templatebool chmax(T &a, const T &b){if(abool chmin(T &a, const T &b){if(a>b){a=b; return true;} return false;} constexpr lint mod = 1e9+7; constexpr lint INF = mod*mod; constexpr int MAX = 100010; int main(){ string s; cin>>s; sort(s.begin(), s.end(), greater<>()); if(next_permutation(s.begin(), s.end(), greater<>())){ cout<<(s[0]!='0' ? s : "-1")<<"\n"; } else cout<<"-1\n"; }