Menedżer plików

Kapitan Mambeks ma za zadanie stworzenie menedżera plików. Nazwy plików w systemie składają się z nazwy i rozszerzenia, które przedzielone są kropką, np. "plik.TXT". Rozszerzenie pliku jest jednak opcjonalne, gdyż mogą wystąpić pliki bez rozszerzenia, np. "plik", "plik.". Nie ma natomiast plików, które nie mają nazwy a mają samo rozszerzenie lub nie mają zarówno nazwy jak i rozszerzenia. Nazwa i rozszerzenie zawierają wyłącznie małe i wielkie litery alfabetu (bez polskich liter), przy czym nazwa maksymalnie 8 liter a rozszerzenie 3.

Jedną z opcji menedżera jest wyszukiwanie plików według określonego wzorca. Podczas wyszukiwania nie jest rozróżniana wielkość liter. Wzorzec ma identyczną budowę jak nazwa pliku, jednak w odróżnieniu od nazwy pliku zawsze składa się z nazwy i rozszerzenia oraz może on zawierać znaki specjalne: "?" i "*". Znak "?" we wzorcu oznacza dowolny znak na pozycji, na której się on znajduje. Przykładowo wzorzec "a?.txt" oznacza wszystkie pliki o rozszerzeniu "txt" i nazwie złożonej z dwóch liter, gdzie pierwszą literą jest "a" a drugą dowolna litera. Z kolei znak "*" na danej pozycji oznacza ciąg dowolnych znaków, przy czym ciąg ten może być pusty. Przykładowo dla wzorca "a*.txt" będą to wszystkie pliki o rozszerzeniu "txt" i nazwie rozpoczynającej się od litery "a", czyli np. "a.txt", "ab.txt", "abc.txt", "abcd.txt".

Twoim zadaniem jest napisanie programu, który dla zadanego wzorca oraz listy nazw plików wyznaczy te pliki, które są zgodne ze wzorcem.

Dane wejściowe:

W pierwszym wierszu wejścia zapisana jest liczba zestawów danych wejściowych n (1 ≤ n ≤ 50). W kolejnych wierszach jest zapisanych n zestawów danych wejściowych.

Pierwszy wiersz zestawu danych zawiera wzorzec. W drugim wierszu znajduje się liczba całkowita k (1 ≤ k ≤ 70000) będąca liczbą nazw plików. W kolejnych k wierszach znajdują się nazwy plików (jeden wiersz zawiera tylko jedną nazwę).

Dane wyjściowe:

Dla każdego zestawu danych wejściowych program ma wypisać jeden wiersz zawierający dwie liczby całkowite oddzielone pojedynczym odstępem, gdzie pierwsza z nich określa liczbę plików zgodnych ze wzorcem, a druga liczbę plików niezgodnych ze wzorcem.

Przykładowe dane wejściowe:

4
xyZ?a*.txt
5
XYZca.txt
XYZa.txt
vXYZca.txt
xyzpabc.txt
xYzwa.t
a*b.exe
3
ab.EXe
Aooob.exE
awwwbc.e
ab*ab.*
6
abab
abaaaab.
abab.cc
abcab.ee
zabab.txt
qabyab.txt
ab?.tx?
6
abc.tXT
ab.tx
abcd.txt
abc.
abX.tXX
aabc.txc
	

Przykładowe dane wyjściowe:

2 3
2 1
4 2
2 4