만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

또 다른 구성 문제는 아니다!

시간 제한1초메모리 제한2048 MB

요약
길이 n(최대 40)의 문자열에서 물음표를 대문자로 채워, 부분 수열 NAC가 정확히 k개가 되도록 하거나 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 문자열, 완전 탐색
정답자
아직 제출이 없습니다

문제

기하 문제에 지친 당신은 대신 다음 구성 문제를 풀기로 한다. 길이가 nn인 문자열 중 NAC의 부분 수열이 정확히 kk개 들어 있는 문자열을 찾아라. 부분 수열은 연속일 필요가 없다. 친구가 문자열의 일부를 미리 주었으므로, 나머지 자리를 채워야 한다.

입력

첫 번째 줄에 두 정수 nn (1≤n≤401 \le n \le 40)과 kk (0≤k≤2 5000 \le k \le 2\,500)이 주어진다. nn은 문자열의 길이, kk는 출력 문자열에 포함되어야 하는 NAC 부분 수열의 개수다.

두 번째 줄에는 길이가 정확히 nn인 문자열이 주어진다. 문자열은 대문자와 물음표(?)로만 이루어진다.

출력

물음표를 대문자로 바꾼 문자열을 한 줄에 출력한다. 결과 문자열에 NAC 부분 수열이 정확히 kk개 있어야 한다. 입력에 있는 대문자는 원래 위치를 그대로 유지해야 한다. 그런 문자열이 없으면 -1을 출력한다. 답이 여러 개일 수 있으며, 올바른 답이면 어떤 것이든 인정된다.

예제3

  1. 예제 1

    입력
    22 2
    N??A??????C???????????
    
    예상 출력
    NOTANOTHERCONSTRUCTIVE
    
  2. 예제 2

    입력
    18 0
    COUNTINGSATELLITES
    
    예상 출력
    COUNTINGSATELLITES
    
  3. 예제 3

    입력
    2 1
    ??
    
    예상 출력
    -1