페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2453

아름다운 문자열 1s 128MB

문제

숫자들로 이뤄진 문자열의 곱이란 문자열을 이룬 모든 숫자들의 곱이다. 

예를 들어 문자열 "123"의 경우 문자열의 곱은 1*2*3=6 이다.

 

문자열에 숫자만이 존재하고, 길이 1이상의 부분 문자열(substring, 문자열의 연속된 부분)에서

문자열의 곱이 서로 다를 경우에 문자열이 아름답다고 한다.

 

예를 들어 문자열 "263"은 6개의 부분 문자열을 가지고 있으며 : 

"2", "6", "3", "26", "63" , "263" 각 부분 문자열의 곱의 값은 다음과 같다.

2, 6, 3, 2 * 6 = 12, 6 * 3 = 18 , 2 * 6 * 3 = 36, 이 경우 6개의 모든 부분 문자열들의 문자열의 곱의 값이 모두 다르다. 

따라서 "263"의 경우 아름다운 문자열이라 할 수 있다.

 

다른 예로, "236"의 경우 부분 문자열 "6"과 "23"의 문자열의 곱의 값이 같기 때문에 아름다운 문자열이라고 할 수 없다.

 

길이 n의 문자열에 대해 문자열의 곱이 아름다운 문자열 중, 사전 순으로 k번째로 등장하는 문자열을 찾아내는 프로그램을 작성하라. 

맨 처음 나올 수 있는 문자열을 1번째라고 한다.

 

 


입력

입력의 첫 번째 줄에는 테스트 케이스의 개수 T(1≤T≤10)가 입력된다. 각 테스트 케이스는 한 줄이며, n(1≤n≤50), k(1≤k≤1,000,000,000)가 입력된다.


출력

각 테스트 케이스에 대해 k번째 아름다운 문자열을 출력한다. 만약 없을 경우 "NONE"을 출력한다.


예제

5

3 4
4 2000
5 1
2 22
6 464
238

NONE
23457
52
257936
로그인해야 코드를 작성할 수 있어요.