Distribuição de Strings
Phoenix tem uma string composta por letras latinas minúsculas. Ele quer distribuir todas as letras da string em strings , não vazias, tal que todas as letras da string sejam distribuidas. As strings não precisam ser substrings de . Phoenix pode distruibuir as letras de e rearranjá-las do jeito que ele quiser em cada uma das strings .
Por exemplo, se e , Phoenix pode distribuir as letras da string de diversas maneiras, como:
- e
- e
- e
- e
Mas essas maneiras de distribuição são inválidas:
- e
- e
- e uma string vazia ( deve ser não vazia)
Phoenix deseja distribuir as letras da string em strings de modo a minimizar a string lexicograficamente máxima entre todas elas, ou seja, minimizar . Ajude-o a encontrar a distribuição ótima e imprima o menor valor possível de .
Uma string é lexicograficamente menor que uma string se é um prefixo de e , ou existe algum índice tal que e para todo , .
Entrada:
A entrada consiste em diversos casos de teste. A primeira linha contém um intero , o número de casos de teste. Cada caso de teste possui duas linhas.
A primeira linha de cada caso de teste consiste em dois inteiros e , o tamanho da string e o número de strings não vazias em que Phoenix quer distribuir as letras de , respectivamente.
A segunda linha de cada caso de teste tem a string de tamanho , que é formada por letras latinas minúsculas.
Saída
Imprima strings, a i-ésima deve ser o valor mínimo de para o i-ésimo caso de teste.
Restrições:
Exemplos:
ENTRADA |
SAÍDA |
6 4 2 baba 5 2 baacb 5 3 baacb 5 3 aaaaa 6 4 aaxxzz 7 1 phoenix |
ab abbc b aa x ehinopx |