狂野飙车 jest ulubioną grą małego L. W odróżnieniu od innych amatorów mały L, oprócz grania, dobrze zna się również na badaniu konstrukcji gier, dlatego stosuje nietypowe strategie.
Treść zadania
Mały L planuje rozegrać $n$ wyścigów. W każdym wyścigu używa się jednej mapy, a mały L wybierze samochód, którym ukończy grę na tej mapie.
Mały L ma trzy samochody wyścigowe, oznaczone wielkimi literami A, B i C. Istnieją cztery rodzaje map, oznaczone małymi literami x, a, b i c. Samochód A nie nadaje się do mapy a, samochód B do mapy b, a samochód C do mapy c. Natomiast mapa x nadaje się dla wszystkich samochodów. Mapy odpowiednie dla wszystkich samochodów są rzadkie: będzie ich najwyżej $d$.
Mapy dla $n$ wyścigów można opisać łańcuchem małych liter. Na przykład $S=\texttt{xaabxcbc}$ oznacza, że mały L planuje 8 wyścigów. Mapy w wyścigach 1 i 5 są typu x i nadają się dla wszystkich samochodów; mapy w wyścigach 2 i 3 są typu a i nie nadają się dla samochodu A; mapy w wyścigach 4 i 7 są typu b i nie nadają się dla samochodu B; mapy w wyścigach 6 i 8 są typu c i nie nadają się dla samochodu C.
Mały L ma pewne szczególne wymagania dotyczące gry. Każde z nich można opisać czwórką $(i,h_i,j,h_j)$: jeśli w wyścigu $i$ zostanie użyty samochód typu $h_i$, to w wyścigu $j$ musi zostać użyty samochód typu $h_j$.
Czy potrafisz pomóc małemu L wybrać samochód do każdego wyścigu? Jeśli istnieje wiele rozwiązań, wypisz dowolne z nich. Jeśli rozwiązanie nie istnieje, wypisz „-1” (bez cudzysłowów).
Wejście
Dane należy odczytać z pliku game.in.
Pierwszy wiersz wejścia zawiera dwie nieujemne liczby całkowite $n,d$.
Drugi wiersz wejścia zawiera łańcuch $S$.
Znaczenie $n,d,S$ opisano w treści zadania. Łańcuch $S$ zawiera $n$ znaków, z których dokładnie $d$ to małe litery x.
Trzeci wiersz wejścia zawiera dodatnią liczbę całkowitą $m$, oznaczającą liczbę reguł używania samochodów. Każdy z kolejnych $m$ wierszy zawiera czwórkę $i,h_i,j,h_j$, gdzie $i,j$ są liczbami całkowitymi, a $h_i,h_j$ są znakami a, b lub c. Ich znaczenie opisano w treści zadania.
Wyjście
Wynik należy zapisać do pliku game.out.
Wypisz jeden wiersz.
Jeśli rozwiązanie nie istnieje, wypisz „-1” (bez cudzysłowów).
Jeśli rozwiązanie istnieje, wiersz powinien zawierać łańcuch długości $n$, złożony wyłącznie z wielkich liter A, B i C, opisujący wybór samochodów przez małego L w tych $n$ wyścigach. Jeśli istnieje wiele rozwiązań, wypisz dowolne z nich.
Przykład
Wejście 1
3 1 xcc 1 1 A 2 B
Wyjście 1
ABA
Przykład 2
Zobacz pliki game/game2.in i game/game2.ans w katalogu zawodnika.
Uwagi
Objaśnienie przykładu 1:
Mały L planuje 3 wyścigi. Mapa w pierwszym wyścigu jest typu x i nadaje się dla wszystkich samochodów, natomiast mapy w drugim i trzecim wyścigu są typu c i nie nadają się dla samochodu C.
Mały L chce, aby użycie samochodu A w pierwszym wyścigu pociągało za sobą użycie samochodu B w drugim wyścigu.
Przydzielenie samochodów A, B i A odpowiednio do tych 3 wyścigów spełnia wszystkie warunki.
Przydzielenie do kolejnych 3 wyścigów samochodów BBB lub BAA również spełnia wszystkie warunki i jest uznawane za poprawną odpowiedź. Natomiast przydziały AAB i ABC nie spełniają wszystkich warunków, więc nie są uznawane za poprawne odpowiedzi.
Podzadania
| Numer testu | $n$ | $d$ | $m$ | Pozostałe właściwości |
|---|---|---|---|---|
| 1 | $\le 2$ | $0$ | $\le 4$ | Brak |
| 2 | $\le 2$ | $\le n$ | $\le 4$ | Brak |
| 3 | $\le 5$ | $0$ | $\le 10$ | Brak |
| 4 | $\le 5$ | $\le n$ | $\le 10$ | Brak |
| 5 | $\le 10$ | $0$ | $\le 20$ | Brak |
| 6 | $\le 10$ | $\le 8$ | $\le 20$ | Brak |
| 7 | $\le 20$ | $0$ | $\le 40$ | $S$ zawiera tylko c |
| 8 | $\le 20$ | $0$ | $\le 40$ | Brak |
| 9 | $\le 20$ | $\le 8$ | $\le 40$ | $S$ zawiera tylko x lub c |
| 10 | $\le 20$ | $\le 8$ | $\le 40$ | Brak |
| 11 | $\le 100$ | $0$ | $\le 200$ | $S$ zawiera tylko c |
| 12 | $\le 100$ | $0$ | $\le 200$ | Brak |
| 13 | $\le 100$ | $\le 8$ | $\le 200$ | $S$ zawiera tylko x lub c |
| 14 | $\le 100$ | $\le 8$ | $\le 200$ | Brak |
| 15 | $\le 5000$ | $0$ | $\le 10000$ | Brak |
| 16 | $\le 5000$ | $\le 8$ | $\le 10000$ | $S$ zawiera tylko x lub c |
| 17 | $\le 5000$ | $\le 8$ | $\le 10000$ | Brak |
| 18 | $\le 50000$ | $0$ | $\le 100000$ | Brak |
| 19 | $\le 50000$ | $\le 8$ | $\le 100000$ | $S$ zawiera tylko x lub c |
| 20 | $\le 50000$ | $\le 8$ | $\le 100000$ | Brak |