package chelper; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import io.InputReader; import io.OutputWriter; import misc.GCJSolution; public class TaskB extends GCJSolution { public void solve(int testNumber, InputReader in, OutputWriter out) { wrapSolve(testNumber, in, out); } long parse(char[] s) { return Long.parseLong(new String(s)); } boolean isGood(char[] s) { char[] s2 = Arrays.copyOf(s, s.length); Arrays.sort(s2); return Arrays.equals(s, s2); } @Override public void solve(int testNumber) { char[] s = in.nextString().toCharArray(); List vars = new ArrayList<>(); vars.add(Arrays.copyOf(s, s.length)); for (int i = 0; i < s.length; i++) { char[] s2 = Arrays.copyOf(s, s.length); if (s[i] >= '1') { s2[i] = (char) (s[i] - 1); for (int j = i + 1; j < s.length; j++) { s2[j] = '9'; } vars.add(s2); } } vars = vars.stream().filter(this::isGood).sorted((o1, o2) -> Long.compare(parse(o1), parse(o2))).collect(Collectors.toList()); out.println(parse(vars.get(vars.size() - 1))); } }