숫자 조각

N에 가장 가까운, 각 자리 숫자가 겹치지 않는 수를 구한다. 차이가 같으면 더 작은 수를 출력한다.

보통6완전 탐색그리디구현수학아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

곧 일곱 살이 되는 준하는 유치원에서 숫자가 적힌 나무 조각을 가지고 노는 것을 좋아한다. 조각은 모두 10개이고, 조각마다 0부터 9까지의 숫자가 하나씩 적혀 있다. 조각을 이어 붙이면 더 큰 수를 만들 수 있고 조합도 무척 다양하다는 점이 준하는 마음에 들었다. 오늘도 준하는 조각으로 만들 수 있는 가장 큰 수인 9876543210을 보며 신이 나 있었다. 그런 준하를 보다 못한 강민이가 딴지를 걸었다.

"그걸로는 333도 못 만들지?"

화가 난 준하는 조각을 재빨리 늘어놓고 대답했다.

"333은 못 만들어도 329를 만들면 별로 차이 안 나!"

강민이는 어이가 없었지만 준하를 더 놀려먹기로 하고 이렇게 말했다.

"그래? 그럼 44223344는?"

순간 준하는 머리가 멍해져 아무 생각도 나지 않았다. 준하가 수학을 포기하지 않도록 대신 계산해 주는 프로그램을 만들어 주자.

조각은 숫자마다 하나씩만 있으므로, 준하가 만들 수 있는 수는 같은 숫자를 두 번 쓰지 않는 수뿐이다. 맨 앞자리에는 0을 놓지 않는다.

입력

첫째 줄에 강민이가 물어본 수 NN이 주어진다. (1N10121 \le N \le 10^{12})

출력

첫째 줄에 0부터 9까지의 숫자를 각각 최대 한 번씩만 써서 만든 수 가운데 NN과의 차이가 가장 작은 수를 출력한다. 맨 앞자리는 0이 될 수 없다. 차이가 가장 작은 수가 두 개면 그중 더 작은 수를 출력한다.