뱀파이어 숫자

시간 제한10초메모리 제한128 MB

문제

$1827$은 흥미로운 수이다. 그 이유는 $1827 = 21 \times 87$이고, 좌변과 우변에 나온 숫자가 모두 같기 때문이다. 또, $136948$도 비슷한 성질을 가지고 있다. $136948 = 146 \times 938$이다.

이러한 수를 뱀파이어 숫자라고 한다. 즉, $v$가 뱀파이어 숫자가 되려면 두 수 $a$와 $b$의 곱($v = a \times b$)으로 나타낼 수 있어야 하고, $a$와 $b$에 등장하는 숫자를 모두 모으면 (중복까지 포함하여) $v$의 숫자와 같아야 한다. $v$, $a$, $b$는 $0$으로 시작할 수 없다.

원래는 $a$와 $b$의 자리수가 같아야 하므로 $v$는 짝수 자리여야 하지만, 이 문제에서는 $a$와 $b$의 자리수가 다른 것도 뱀파이어 숫자로 인정한다.

아래는 뱀파이어 숫자의 예이다.

$126 = 6 \times 21$

$10251 = 51 \times 201$

$702189 = 9 \times 78021$

$29632 = 32 \times 926$

수 $X$가 주어졌을 때, $X$보다 크거나 같은 뱀파이어 숫자 중 가장 작은 수를 찾는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 정수 $X$ ($10 \le X \le 1{,}000{,}000$)를 포함하는 한 줄로 이루어져 있다. 입력은 $0$이 있는 줄에서 끝난다.

출력

각 테스트 케이스에 대해, $X$보다 크거나 같은 뱀파이어 숫자 중 가장 작은 수를 한 줄에 하나씩 출력한다.

힌트

뱀파이어 숫자는 실제로 존재하는 수학적 개념이다. (위키백과: 뱀파이어 수)