Дитина намалювала (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