Гра#825

Гра

5 секунд
64 мегабайти
Дуже складна

Дитина намалювала (N \le 100) пронумерованих кружечків різних кольорів. Вона з'єднала деякі кружечки кольоровими стрілками. Кожна пара кружечків могла бути з'єднана довільною кількістю стрілок будь-якого кольору. Кожному кольору присвоєно номер, що не перевищує .

Перед початком гри дитина поклала одну фішку на кружечок номер , а другу — на інший кружечок номер . Фініш — інший кружечок номер . Далі гра відбувається за такими правилами:

Вам потрібно написати програму, яка визначить, чи можна завершити гру і, якщо можна, мінімальну кількість ходів, необхідних для завершення гри.

Вхідні дані

Перший рядок вхідного файлу містить числа , , , , розділені пробілами. Другий рядок містить цілих чисел c_1, c_2, , c_N, розділених пробілами, де c_i — це колір кружечка номер . Третій рядок містить одне число (0 \le M \le 10000) — загальна кількість стрілок. Кожен із наступних рядків описує одну стрілку трьома цілими числами A_j, B_j, C_j: A_j і B_j — номери кружечків (стрілка йде від A_j до B_j), а C_j — колір стрілки.

Вихідні дані

Перший рядок вихідного файлу повинен містити YES, якщо гру можна завершити, і NO в іншому випадку. Якщо відповідь YES, другий рядок має містити одне число — мінімальну кількість ходів для завершення гри.

Приклади

Приклад 1

Loading
Loading