행크 모어북스는 유명한 작가다. 새 책의 줄거리는 이미 정했지만, 등장인물 k명의 이름은 아직 정하지 못했다.
이전 책에서 쓰던 방식대로, 그는 영어 소문자로 이루어진 문자열을 하나 만들고 그 문자열을 서로 다른 k개의 비어 있지 않은 조각으로 나눈다. 각 조각이 등장인물 한 명의 이름이 된다.
주어진 문자열을 서로 다른 k개의 이름으로 나눌 수 있는지 판별하라.
입력은 여러 개의 테스트 케이스로 이루어진다. 첫째 줄에 테스트 케이스의 개수 t가 주어진다 (1≤t≤1000).
각 테스트 케이스는 두 줄이다. 첫째 줄에 나눌 문자열이 주어진다. 길이는 100 이하이고 영어 소문자로만 이루어진다. 둘째 줄에 문자열을 나눌 조각의 개수 k가 주어진다 (1≤k≤5).
각 테스트 케이스마다 다음과 같이 출력한다.
주어진 문자열을 서로 다른 k개의 비어 있지 않은 조각으로 나눌 수 있으면 첫 줄에 YES를 출력하고, 이어서 조각을 한 줄에 하나씩 k줄에 출력한다. 출력한 순서대로 조각을 이어 붙이면 입력 문자열이 되어야 한다.
나누는 방법이 여러 가지면 조각을 순서대로 나열한 수열이 사전순으로 가장 앞서는 것 하나만 출력한다. 첫 조각의 후보는 모두 문자열의 접두사이므로, 이 조건은 첫 조각을 가능한 한 짧게 잡고, 남은 문자열에서 다음 조각을 다시 가능한 한 짧게 잡고, 마지막 조각까지 같은 방식으로 잡는 것과 같다.
나눌 수 없으면 그 테스트 케이스에 대해 NO만 출력한다.