Aby instalować pakiety w systemie Vinux, Vasya używa Vum, nowoczesnego menedżera pakietów.
Każdy pakiet ma kilka wersji, które można zainstalować. Jednocześnie można zainstalować tylko jedną wersję aplikacji. Konkretną wersję konkretnej aplikacji nazwijmy pakietem. Ponieważ konkretne wersje różnych aplikacji mogą być wzajemnie niezgodne, w Vum istnieją konflikty. Każdy konflikt jest zbiorem pakietów, z którego można zainstalować najwyżej jeden pakiet. Próba zainstalowania więcej niż jednego pakietu z listy konfliktu prowadzi do awarii, a Vasya tego nie chce.
Różne wersje dowolnej aplikacji mogą być w konflikcie lub nie. W jednym konflikcie może występować kilka wersji danej aplikacji, w tym wszystkie jej wersje.
Ponieważ system opisu konfliktów w Vum jest dość prymitywny, każdy pakiet może występować tylko w jednym konflikcie.
Vasya chce zainstalować $N$ różnych aplikacji bez awarii swojego Vinuksa. Musi wybrać wersje aplikacji, nie łamiąc powyższych zasad, ale wyczerpujące algorytmy rozwiązywania zależności w Vum nie radzą sobie z tym zadaniem. Vasya prosi o pomoc ze swoim menedżerem pakietów.
Wejście
Pierwszy wiersz pliku wejściowego zawiera liczbę całkowitą $N$ — liczbę aplikacji, które Vasya chce zainstalować ($1 \le N \le 200$).
Kolejne $N$ wierszy zawiera opisy aplikacji wraz z listami ich wersji. Opis aplikacji składa się z następujących pól oddzielonych spacjami:
- nazwa aplikacji — ciąg małych liter alfabetu łacińskiego o długości od 1 do 10 znaków;
- liczba wersji — dodatnia liczba całkowita nie większa niż $1\,000$;
- numery wersji — dodatnie liczby całkowite podane w kolejności rosnącej.
Numery aplikacji są nie większe niż $100\,000$. Wszystkie nazwy aplikacji są różne.
Następny wiersz zawiera liczbę $K$ — liczbę konfliktów ($0 \le K \le 500$).
Kolejne $K$ wierszy opisuje konflikty. Opis konfliktu zaczyna się od dodatniej liczby całkowitej $T$ — liczby pakietów w konflikcie. Następnie podanych jest $T$ pakietów oddzielonych spacjami. Dla każdego pakietu podana jest nazwa aplikacji, a po niej numer wersji.
Gwarantuje się, że pakiety wymienione w konfliktach nigdy się nie powtarzają i że wszystkie wersje są wymienione w opisach aplikacji.
Wyjście
Jeśli nie da się zainstalować wszystkich $N$ aplikacji bez konfliktów, jedyny wiersz pliku wyjściowego musi zawierać słowo No. Jeśli się da, pierwszy wiersz musi zawierać słowo Yes, a drugi — oddzielone spacjami numery wersji, które należy w tym celu zainstalować.
Wersje $N$ aplikacji należy wypisać w tej samej kolejności, w jakiej aplikacje opisano w pliku wejściowym. Jeśli istnieje kilka możliwych sposobów wyboru aplikacji, wypisz dowolny z nich.
Przykład
Wejście 1
3 vim 3 1 2 3 nano 2 5 8 python 2 2 3 2 2 vim 3 nano 8 3 vim 1 nano 5 vim 2
Wyjście 1
Yes 2 8 2
Wejście 2
2 firefox 1 38 chrome 1 46 1 2 firefox 38 chrome 46
Wyjście 2
No
Uwagi
Pierwszy przykład zawiera dwa konflikty. Pierwszy konflikt uniemożliwia jednoczesną instalację trzeciej wersji vim i ósmej wersji nano. Drugi konflikt oznacza, że można zainstalować tylko jeden z następujących pakietów — pierwszą wersję vim, piątą wersję nano i drugą wersję vim — albo nie instalować żadnego. Poprawne rozwiązania są następujące:
1 8 21 8 32 8 22 8 33 5 23 5 3
W drugim przykładzie są dwie aplikacje, każda z jedną wersją. Jednak jedyny konflikt zabrania instalowania obu aplikacji jednocześnie.