← Home
write a go solution for Description:
You are given two integers n and k along with a string s.

Your task is to check whether all possible strings of length n that can be formed using the first k lowercase English alphabets occur as a subsequence of s. If the answer is NO, you also need to print a string of length n that can be formed using the first k lowercase English alphabets which does not occur as a subsequence of s.

If there are multiple answers, you may print any of them.

Note: A string a is called a subsequence of another string b if a can be obtained by deleting some (possibly zero) characters from b without changing the order of the remaining characters.

Input Format:
The first line of input contains a single integer t,(1<=t<=10^5), the number of test cases.

The first line of each test case contains 3 integers n,(1<=n<=26),:k,(1<=k<=26),:m,(1<=m<=1000), where n and k are the same as described in the input and m is the length of the string s.

The second line of each test case contains a single string s of length m, comprising only of the first k lowercase English alphabets.

It is guaranteed that the sum of m and the sum of n over all test cases does not exceed 10^6.

Output Format:
For each test case, print YES if all possible strings of length n that can be formed using the first k lowercase English alphabets occur as a subsequence of s, else print NO.

If your answer is NO, print a string of length n that can be formed using the first k lowercase English alphabets which does not occur as a subsequence of s in the next line.

You may print each letter of YES or NO in any case (for example, YES, yES, YeS will all be recognized as a positive answer).

Note:
For the first test case, all possible strings (aa, ab, ba, bb) of length 2 that can be formed using the first 2 English alphabets occur as a subsequence of abba.

For the second test case, the string aa is not a subsequence of abb.. Output only the code with no comments, explanation, or additional text.