알파벳의 처음 $N$개 문자로만 이루어진 문자열들을 생각하자. 각 문자열에 들어가는 a의 개수, b의 개수 등은 문자마다 미리 정해진 값(서로 다를 수 있다)으로 고정되어 있다. 이러한 문자열을 모두 모아 사전순으로 나열하고 $0$번부터 번호를 매긴다. 인덱스 $K$가 주어질 때, 이 목록에서 $K$번째 문자열을 출력하여라.
예를 들어 문자 $N = 2$개(a와 b)를 사용하고 a가 정확히 $2$개, b가 정확히 $3$개인 문자열들을 사전순으로 정렬하면 다음과 같다.
| 번호 | 문자열 | 번호 | 문자열 |
|---|---|---|---|
| 0 | aabbb | 5 | babab |
| 1 | ababb | 6 | babba |
| 2 | abbab | 7 | bbaab |
| 3 | abbba | 8 | bbaba |
| 4 | baabb | 9 | bbbaa |
$K = 5$이면 답은 babab이다.
입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋은 두 줄로 구성된다.
첫 번째 줄에는 두 정수 $N$과 $K$가 주어진다 ($1 \le N \le 20$, $0 \le K < m$). 여기서 $N$은 사용하는 알파벳 문자의 개수, $K$는 찾고자 하는 목록 원소의 번호이며, $m$은 목록에 들어 있는 문자열의 총 개수이다. $m$은 입력으로 직접 주어지지 않는다.
$m$은 매우 커서 전체 목록을 만드는 것이 불가능할 수도 있지만, 입력은 $m$과 $K$가 각각 부호 있는 32비트 정수 범위에 들어가도록 주어진다.
두 번째 줄에는 $N$개의 음이 아닌 정수가 주어지며, 각각 a의 개수, b의 개수 등을 나타낸다. 이 정수들의 합은 최소 $1$, 최대 $50$이다.
입력의 끝은 두 개의 $0$으로 이루어진 줄로 표시된다.
각 데이터셋마다 답 문자열을 한 줄에 하나씩 출력한다. 불필요한 공백을 출력하지 말고, 답 사이에 빈 줄을 출력하지 마라.