Fie N cuvinte formate din litere ale alfabetului englez și un șablon format din următoarele tipuri de caractere:
1. Litere ale alfabetului englez,
2. Caracterul ? care înlocuiește o literă a alfabetului englez,
3. Caracterul * care înlocuiește un număr natural (0, 1, 2, ...) de litere ale alfabetului englez.
Pot exista mai multe caractere ? și *, posibil alăturate.
Cerinţă
Se cere să se scrie un program care să determine cuvintele care se potrivesc cu șablonul.
Nu este necesară scrierea întregului cuvânt, ci doar numărul lui de ordine (de la 1) în lista cuvintelor.
Date de intrare
Programul citește din fișierul sablon2.in.
Pe prima linie se găsește numărul natural N, iar pe următoarea linie se găsește șablonul S.
Pe următoarele linii se găsesc cele N cuvinte Ci, fiecare pe o linie.
Date de ieşire
Programul scrie pe prima linie din fișierul sablon.out.
Vor fi scrise K linii, unde K este numărul de cuvinte care se potrivesc.
Pe linia k se găsește numărul de ordine al celui de-al k-lea cuvânt care se potrivește.
Restricţii
1 ≤ N ≤ 102 1 ≤ |Ci|, |S| ≤ 103
Exemple
sablon2.in
sablon2.out
Explicaţii
2
t*A?
tic
tAC
2
Primul cuvânt, tic, nu se potrivește cu șablonul. Al doilea cuvânt se potrivește: * înlocuiește 0 caractere, iar ? înlocuiește caracterul C.