Oyun
Uşaq müxtəlif rəngli N (N ≤ 100) nömrələnmiş dairələr çəkdi. O, bəzi dairələri rəngli oxlarla birləşdirdi. Hər bir dairə cütü istənilən sayda və istənilən rəngdə oxlarla birləşdirilə bilərdi. Hər rəngə öz nömrəsini təyin edək, bu nömrə 100-dən çox olmamalıdır.
Oyun başlamazdan əvvəl uşaq bir fiquru L nömrəli dairəyə, digərini isə birinci ilə üst-üstə düşməyən K nömrəli dairəyə qoydu. Finiş isə onlarla üst-üstə düşməyən Q nömrəli dairə hesab olunur. Sonra oyun aşağıdakı qaydalara əsasən başlayır:
Fiquru, əgər oxun rəngi digər fiqurun yerləşdiyi dairənin rənginə uyğundursa, dairədən çıxan ox boyunca hərəkət etdirmək olar.
İki fiqur heç vaxt eyni anda eyni dairədə ola bilməz.
Hərəkətlərin sırası sərbəstdir (yəni fiqurları növbə ilə hərəkət etdirmək lazım deyil).
Oyun, iki fiqurdan hər hansı biri Q nömrəli dairəyə çatdıqda başa çatır.
Siz oyunun başa çatmasının mümkün olub-olmadığını və əgər mümkündürsə, oyunu başa çatdırmaq üçün lazım olan minimal hərəkət sayını müəyyən edən bir proqram yazmalısınız.
Giriş verilənləri
Giriş faylının ilk sətiri boşluqlarla ayrılmış N, L, K, Q rəqəmlərini ehtiva edir. İkinci sətir N tam ədədlərini c_1, c_2, ... , c_N boşluqlarla ayrılmış şəkildə ehtiva edir, burada c_i i nömrəli dairənin rəngini göstərir. Üçüncü sətir ümumi ox sayını göstərən bir ədəd M (0 ≤ M ≤ 10000) ehtiva edir. Növbəti M sətirin hər biri bir oxu təsvir edir. Hər bir ox üç tam ədəd A_j, B_j, C_j ilə təsvir olunur, burada A_j və B_j dairələrin nömrələridir (ox A_j dairəsindən B_j dairəsinə yönəldilmişdir) və C_j oxun rəngini göstərir.
Çıxış verilənləri
Çıxış faylının ilk sətiri oyun başa çata bilərsə "YES" və əks halda "NO" sözünü ehtiva etməlidir. Əgər bu suala cavab "YES"dirsə, çıxış faylının ikinci sətirində oyunu başa çatdırmaq üçün lazım olan minimal hərəkət sayı olan bir ədəd olmalıdır.