package main import ( "fmt" "sort" ) func main() { var x string fmt.Scan(&x) m := make(map[int]int, 0) for i := 0; i < len(x); i++ { m[int(x[i]-'0')]++ } if (len(m)) == 1 { fmt.Println(-1) return } ks := make([]int, 0) for k := range m { ks = append(ks, k) } sort.Sort(sort.Reverse(sort.IntSlice(ks))) maxs := "" for i := range ks { for j := 0; j < m[ks[i]]; j++ { maxs += string('0' + byte(ks[i])) } } // fmt.Println("x", x, "maxs", maxs) var s string for i := len(maxs) - 1; i-1 >= 0; i-- { // fmt.Println("found diff on i", i) if maxs[i-1] != maxs[i] { s = maxs[0:i-1] + string(maxs[i]) + string(maxs[i-1]) if i+1 < len(maxs) { s += string(maxs[i+1:]) } break } } if s[0] == '0' { fmt.Println(-1) } else { fmt.Println(s) } }