이름 생성기

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

행크 모어북스는 유명한 작가다. 새 책의 줄거리는 이미 정했지만, 등장인물 kk명의 이름은 아직 정하지 못했다.

이전 책에서 쓰던 방식대로, 그는 영어 소문자로 이루어진 문자열을 하나 만들고 그 문자열을 서로 다른 kk개의 비어 있지 않은 조각으로 나눈다. 각 조각이 등장인물 한 명의 이름이 된다.

주어진 문자열을 서로 다른 kk개의 이름으로 나눌 수 있는지 판별하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 첫째 줄에 테스트 케이스의 개수 tt가 주어진다 (1t10001 \le t \le 1000).

각 테스트 케이스는 두 줄이다. 첫째 줄에 나눌 문자열이 주어진다. 길이는 100100 이하이고 영어 소문자로만 이루어진다. 둘째 줄에 문자열을 나눌 조각의 개수 kk가 주어진다 (1k51 \le k \le 5).

출력

각 테스트 케이스마다 다음과 같이 출력한다.

주어진 문자열을 서로 다른 kk개의 비어 있지 않은 조각으로 나눌 수 있으면 첫 줄에 YES를 출력하고, 이어서 조각을 한 줄에 하나씩 kk줄에 출력한다. 출력한 순서대로 조각을 이어 붙이면 입력 문자열이 되어야 한다.

나누는 방법이 여러 가지면 조각을 순서대로 나열한 수열이 사전순으로 가장 앞서는 것 하나만 출력한다. 첫 조각의 후보는 모두 문자열의 접두사이므로, 이 조건은 첫 조각을 가능한 한 짧게 잡고, 남은 문자열에서 다음 조각을 다시 가능한 한 짧게 잡고, 마지막 조각까지 같은 방식으로 잡는 것과 같다.

나눌 수 없으면 그 테스트 케이스에 대해 NO만 출력한다.