n = gets.chomp.split('').map(&:to_i) a = n.sort.reverse t = [] k = '' n.size.times{|i| if n[i] != a[i] t = n[i..-1] break else k += n[i].to_s end } if t.empty? puts k exit end a = t.rindex(t.max) t.size.times{|i| if t[i] != t.max tmp = t[a] t[a] = t[i] t[i] = tmp break end } p (k + t.join('')).to_i