Hide

Problem B
Protein

Nikolaj är kemist och försöker skapa ett protein med en viss form. Just nu har han ett protein som består av en kedja av aminosyror av längd $N$. Kedjan är en sträng $s$, där varje aminosyra är en bokstav. Bokstäverna som används är de $K$ första i alfabetet ($1 \leq K \leq 26$).

Nikolaj kan göra så att en aminosyra $s_ i$ reagerar med $s_{i+1}$ så att $s_{i+1}$ försvinner från kedjan. Men detta är bara möjligt för vissa par av bokstäver. Nikolaj har en $K \times K$-tabell $A$ med nollor och ettor som indikerar vilka par av bokstäver som kan reagera med varandra. Om $A_{xy} = 1$ så betyder det att bokstav nummer $x$ i alfabetet kan reagera med bokstav nummer $y$. Så om till exempel $A_{23} = 1$ och strängen är bccbca, så kan den första bokstaven reagera med den andra så att strängen blir bcbca. Därefter kan två till reaktioner ske så att strängen blir bba.

Nikolaj vill skapa ett protein som är så litet som möjligt lexikografiskt, genom att ta bort bokstäver från $s$ på det här sättet. Din uppgift är att hitta den lexikografiskt minsta strängen som är möjlig.

Indata

Den första raden innehåller två heltal $K$ och $N$ ($1 \leq K \leq 26$, $1 \leq N \leq 5 \cdot 10^5$).

Därefter följer $K$ rader med en sträng av längd $K$, matrisen $A_{ij}$.

På sista raden är strängen $s$.

Utdata

Skriv ut en sträng, den lexikografiskt minimala strängen som kan skapas genom att göra borttagningar som beskrivs i problemet.

Poängsättning

Din lösning kommer att testas på en mängd testfallsgrupper. För att få poäng för en grupp så måste du klara alla testfall i gruppen.

Grupp

Poängvärde

Gränser

$1$

$15$

$N \leq 20$

$2$

$10$

$N \leq 300$, $K \leq 5$

$3$

$20$

$N \leq 500$

$4$

$10$

$N \leq 2000$

$5$

$25$

$N \leq 10^5$

$6$

$10$

$K \leq 2$

$7$

$10$

Inga ytterligare begränsningar

Sample Input 1 Sample Output 1
3 7
010
001
100
abacaba
aac
Sample Input 2 Sample Output 2
3 5
010
001
100
bcacb
bacb

Please log in to submit a solution to this problem

Log in