fn main() { let mut x = String::new(); std::io::stdin().read_line(&mut x).ok(); let x = x.trim(); let mut count = vec![0; 10]; for c in x.chars() { let i = c as usize - '0' as usize; count[i] += 1; } if count.iter().filter(|&&n| n > 0).count() == 1 || count[0] == x.len() - 1 { println!("-1"); } else { let chars: Vec = (0..=9).map(|n| char::from_digit(n, 10).unwrap()).collect(); let mut answer = vec![]; for (i, &c) in count.iter().enumerate().rev() { answer.extend(vec![chars[i]; c]); } let last = answer[answer.len() - 1]; let i = answer.iter().rposition(|&n| n != last).unwrap(); let j = answer.iter().position(|&n| n == last).unwrap(); answer.swap(i, j); let answer: String = answer.iter().collect(); println!("{answer}"); } }