厌倦了解决几何问题,你决定解决下面这个构造问题:找到一个长度为 $n$ 的字符串,使其包含恰好 $k$ 个不一定连续的 NAC 子序列。
这个问题看起来太熟悉了。这里有一个转折——你的朋友已经给出了字符串的一部分,所以你必须填补剩余的字符!
输入格式
第一行包含两个整数 $n$ ($1 \le n \le 40$) 和 $k$ ($0 \le k \le 2500$),其中 $n$ 是字符串的长度,$k$ 是输出字符串必须包含的 NAC 子序列的数量。
第二行包含一个长度恰好为 $n$ 的字符串,仅由大写字母和/或问号组成。
输出格式
输出一个大写字母字符串,将输入字符串中的每个问号替换为一个大写字母,使得结果字符串恰好包含 $k$ 个 NAC 子序列。如果无法做到,输出 -1。输入字符串中已有的任何大写字母必须保持在原位。对于任何给定的测试用例,可能存在多种可能的解;任何正确的解都将被接受。
样例
样例输入 1
22 2 N??A??????C???????????
样例输出 1
NOTANOTHERCONSTRUCTIVE
样例输入 2
18 0 COUNTINGSATELLITES
样例输出 2
COUNTINGSATELLITES
样例输入 3
2 1 ??
样例输出 3
-1