C. Слоган (35 баллов)

В городе есть N перекрёстков, соединённых дорогами с односторонним движением. Компания Macrohard решила провести в городе рекламную акцию своего нового программного продукта Beds. Для этого был придуман рекламный слоган, а на перекрёстках вывешены некоторые слова. Программист Вася хочет проехать по улицам города таким образом, чтобы выполнялись следующие условия:

Требуется написать программу, которая находит искомый путь.

Входные данные
В первой строке файла находится слоган - последовательность из K (1≤K≤100) слов, разделённых пробелами.
Во второй строке файла находится число N (1≤N≤100) - количество перекрёстков в городе.
В последующих N строках содержится описание перекрёстков.
<i+2 строка входного файла> ::= <слово на i-ом перекрёстке> <число di исходящих из перекрёстка дорог> <список дорог>
<список дорог> ::= <перекрёсток, с которым соединяется первая дорога> <длина первой дороги>...<перекрёсток, с которым соединяется дорога di> <длина дороги di>

Выходные данные
Если решения не существует, то в первой строке должно быть слово 'NO'
Иначе в первой строке должно быть слово 'YES', во второй - длина кратчайшего пути, а в третьей - номера перекрёстков в порядке их посещения.
При наличии нескольких решений вывести любое из них.

Примечания
  • Длина каждого слова не превышает 10 символов.
  • Каждое слово состоит из букв русского и латинского алфавита.
  • Длины дорог - неотрицательные целые числа, не превосходящие 1000.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
Решать задачу нужно перебором
8
Решать 2 2 10 8 11
задачу 2 6 14 3 13
нужно 2 5 7 4 10
перебором 0
перебором 0
Килл 2 4 11 7 2
Блинтон 0
задачу 1 3 14
  
YES
30
1 2 3 5