Гра
Дитина намалювала N (N ≤ 100) прономерованих кружечків різного кольору. Вона з'єднала деякі кружечки кольоровими стрілками. Кожна пара кружечків при цьому могла виявитись з'єднаною довільною кількістю стрілок довільного кольору. Присвоїмо кожному кольору свій номер, який не перевищує 100.
Перед початком гри дитина поклала одну фішку на кружечок з номером L, а другу — на неспівадаючий з першим кружечок під номером K. Фінішною вважається неспівпадаюча з ними клітинка з номером Q. Потім починаєтся гра за наступними правилами:
Фішку можна рухати по стрілці, що йде з її кружечка, якщо колір стрілки співпадає з кольором кружечка, на якому розміщено іншу фішку.
Дві фішки ніколи не можуть знаходитись на одном і тому ж кружечку в один і той же час.
Порядок ходів вільний (тобто немає необхідності пересувати фішки по черзі).
Гра завершується, коли довільна з двох фішок досягне кружечка з номером Q.
Ви повинні написати програму, яка буде визначати мінімальну кількість ходів, за яку можна завершити гру, якщо її завершення існує.
Вхідні дані
Перший рядок вхідного файлу містит числа N, L, K, Q, відокремлені пропусками. Другий рядок містить з N цілих чисел c_1, c_2, ... , c_N, відокремлених пропусками, у такому порядку, що c_i означає колір кружечка під номером i. Третій рядок містить одне число M (0 ≤ M ≤ 10000), яке задає загальну кількість стрілок. Кожен з наступних M рядків описує одну зі стрілок. Кожна стрілка описується трьома цілими числами A_j, B_j, C_j, відокремлених пропусками, де A_j та B_j — номери кружечків (стрілку направлено від кружечка A_j до B_j, а C_j позначає колір стрілки.
Вихідні дані
Перший рядок вихідного файлу повинен містити слово "YES", якщо гра може завершитись і "NO" у протилежному випадку. Якщо відповідь на це питання —"YES", то у другому рядку вхідного файлу повинно міститись одне число — мінімальна кількість ходів, яку потрібно зробити для завершення гри.