module main; import std; void main() { auto N = readln.chomp; auto digits = N.map!"a-'0'".array; int maxN = digits.maxElement, minN = digits.minElement; // 1番大きい数字が最後に現れる場所を探す auto idx0 = N.length - 1; while (digits[idx0] != maxN) idx0--; // 1番小さい数字が最初に現れる場所を探す int idx1 = 0; while (digits[idx1] != minN) idx1++; auto ans = digits.dup; swap(ans[idx0], ans[idx1]); if (cmp(ans, digits) > 0) writefln("%(%d%)", ans); else writefln("%(%d%)", digits); }