Osmosmerka

Neka je data osmosmerka (matrica sačinjena od malih slova engleskog alfabeta), kao i skup različitih reči, takođe sačinjenih od malih slova engleskog alfabeta, koje je potrebno pronaći u osmosmerci. Reč se može formirati od karaktera u osmosmerci krećući se samo vertikalno, horizontalno ili dijagonalno (moguće je kretati se u više od jednog smera pri formiranju jedne reči, ali nije moguće koristiti jedan isti karakter više puta). Ispisati sve reči iz datog skupa reči koje se nalaze u osmosmerci, u leksikografski rastućem poretku.

Ulaz

Sa standardnog ulaza unose se dimenzije osmosmerke \(m\) i \(n\), (\(1 \leq m, n \leq 12\)). Nakon toga se unosi sama osmosmerka, sačinjena od malih slova enleskog alfabeta. Zatim se unosi broj reči \(q\) za koje je potrebno proveriti da li se nalaze u osmosmerci, a onda i \(q\) različitih reči sačinjenih od malih slova engleskog alfabeta, svaka u zasebnom redu.

Izlaz

Na standardni izlaz ispisati u leksikografski rastućem poretku reči iz skupa koje se pojavljuju u osmosmerci. Ukoliko ne postoji ni jedna takva reč, ispisati -1.

Primer

Ulaz

4 4 o a a n e t a e i h k r i f l v 4 oath pea eat rain

Izlaz

eat oath

Objašnjenje

Reč eat možemo dobiti krećući se od pozicije \((1, 3)\) ulevo. Reč oath možemo dobiti krećući se od pozicije \((0, 0)\) najpre udesno za jedan karakter, a zatim nadole.

Primer

Ulaz

2 2 a b c d 1 abcb

Izlaz

-1

Опис улаза

Опис излаза

Решење

#include <iostream>

using namespace std;

int main()
{

    return 0;
}