만드는 중입니다

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

게임

시간 제한2초메모리 제한1024 MB

요약
각 게임에 자동차 A, B, C 중 하나를 배정해 모든 요구 조건을 만족시킵니다. 가능한 배정이 없으면 -1을 출력합니다.
난이도

보통10점 중 7점

유형
완전 탐색, 그래프
정답자
아직 제출이 없습니다

문제

Little L은 nn개의 게임을 할 계획이다. 각 게임은 맵 하나에서 진행되며, Little L은 그 맵에서 게임을 완료할 차량을 고른다.

Little L에게는 A, B, C 세 종류의 레이싱 카가 있다. 맵은 x, a, b, c 네 종류가 있다. 차량 A는 맵 a에 적합하지 않고, 차량 B는 맵 b에 적합하지 않으며, 차량 C는 맵 c에 적합하지 않다. 맵 x는 모든 차량이 참가하기에 적합하다.

모든 레이서에게 맞는 맵은 많지 않아서, 그런 맵은 최대 dd개뿐이다.

게임의 맵은 소문자로 이루어진 문자열로 나타낸다. 예를 들어 xaabxcbc는 8개의 게임을 뜻한다. 1번과 5번 게임의 맵은 x이므로 모든 차량에 적합하다. 2번과 3번 게임의 맵은 a이므로 차량 A에는 적합하지 않다. 4번과 7번 게임의 맵은 b이므로 차량 B에는 적합하지 않다. 6번과 8번 게임의 맵은 c이므로 차량 C에는 적합하지 않다.

Little L에게는 특별한 요구 조건이 있다. 각 조건은 (i,hi,j,hj)(i, h_i, j, h_j)의 네 값으로 표현되며, ii번 게임에서 차량 hih_i를 사용하면 jj번 게임에서는 차량 hjh_j를 사용해야 한다는 뜻이다.

각 게임에 사용할 차량을 골라 줄 수 있는가? 조건을 만족하는 방법이 여럿이면 그중 아무것이나 하나를 출력한다. 해가 없으면 -1을 출력한다.

입력

첫 줄에 두 정수 nn과 dd가 주어진다.

둘째 줄에 길이 nn인 문자열 SS가 주어진다. SS에 들어 있는 x는 정확히 dd개이다.

셋째 줄에 조건의 개수 mm이 주어진다.

이어지는 mm개의 줄에는 각각 ii, hih_i, jj, hjh_j가 주어진다. ii와 jj는 정수이고, hih_i와 hjh_j는 각각 A, B, C 중 하나이다.

출력

한 줄을 출력한다. 해가 없으면 -1을 출력한다. 해가 있으면 대문자 A, B, C로만 이루어진 길이 nn의 문자열을 출력한다. kk번째 문자는 kk번째 게임에서 사용할 차량이다.

제한

1≤n≤5×1041 \le n \le 5\times 10^4

0≤d≤min⁡(n,8)0 \le d \le \min(n, 8)

1≤m≤1051 \le m \le 10^5

예제1

  1. 예제 1

    입력
    3 1
    xcc
    1
    1 A 2 B
    
    예상 출력
    ABA