한 공장에서는 조립 라인에서 제품을 생산하면서 각 제품을 구별하기 위해 일련번호를 찍는다. 일련번호는 간단한 다기능 계수기(counter)가 1, 2, 3, ... 과 같이 증가하는 순서로 하나씩 생성한다.
이 계수기는 숫자 표시부를 내부 명령 코드(op-code)로도 사용하기 때문에, 특정 숫자 문자열은 예약되어 있어 계수기가 출력하는 어떤 일련번호에도 부분 문자열로 나타나서는 안 된다. 예를 들어 23이 예약된 op-code라면, 어떤 일련번호의 십진 표기에도 23이 포함될 수 없다. 23만 예약되어 있다고 하면 일련번호는 다음과 같이 이어진다.
1, 2, 3, ..., 21, 22, 24, 25, ..., 121, 122, 124, 125, ..., 228, 229, 240, 241, 242, ...
(23, 123, 230-239 처럼 23을 부분 문자열로 포함하는 수는 모두 건너뛴다.)
그 결과, 제품에 찍힌 일련번호는 생산 배치 번호(제품이 생산된 순서를 단순히 센 값 1, 2, 3, ...)와 달라진다. 시스템은 이 둘 사이의 대응 관계를 저장하지 않으므로, (리콜이나 검사를 위해) 특정 제품을 추적하기 어렵다. 어떤 제품의 생산 배치 번호가 주어질 때, 그 제품의 일련번호를 구하라.
즉, 예약된 op-code 문자열들의 집합과 인덱스 b가 주어질 때, 십진 표기에 예약된 문자열을 부분 문자열로 하나도 포함하지 않는 양의 정수 중 b번째로 작은 수를 출력하면 된다.
첫 번째 줄에 테스트 케이스의 개수 T (T≤100)가 주어진다.
각 테스트 케이스는 두 줄로 이루어진다.
012와 12는 서로 다르다).요청된 모든 일련번호는 부호 있는 32비트 정수 범위 안에 든다고 가정해도 된다.
각 테스트 케이스마다, 요청된 생산 배치 번호에 대응하는 N개의 일련번호를 순서대로 한 줄에 출력한다. 인접한 두 정수는 하나의 공백으로 구분한다.