Фирма Macrohard şəbəkə üzərindən məlumat mübadiləsi üçün yeni bir protokol hazırlayıb. Bu mübadilə zamanı hər bir məlumat bloku N ədədindən ibarətdir və bu ədədlər 0 ilə M-1 arasında yerləşir. Verilişin etibarlılığını artırmaq üçün, məlumat bloku ilə birlikdə eyni uzunluqda nəzarət bloku da göndərilir.
Tutaq ki, verilmiş blok a_1, a_2, ..., a_N ədədlərindən ibarətdir. O zaman, nəzarət bloku b_1, b_2, ..., b_N ədədlərindən ibarətdir və bu ədədlər 0 ilə M-1 arasında yerləşir, elə ki, aşağıdakı bərabərliklər yerinə yetirilir: b_1=(a_N+b_N) mod M, b_2=(a_1+b_1) mod M, b_3=(a_2+b_2) mod M, ..., b_N=(a_{N-1}+b_{N-1}) mod M, (X mod M ifadəsi X ədədinin M-ə bölünməsindən qalan qalığı göstərir, məsələn, 7 mod 4 = 3, 6 mod 2 = 0).
Bu xüsusiyyəti təmin edə bilməyən məlumat blokları şübhəli hesab olunur və onların şəbəkə üzərindən göndərilməsinə icazə verilmir.
Vanya Macrohard firmasında proqramçı kimi işə girmək istəyir və giriş tapşırığı olaraq ona verilmiş məlumat bloku üçün nəzarət bloku qurma prosedurunu yazmaq tapşırılıb. Ona kömək edin!
Giriş faylının ilk sətiri N və M (1 ≤ N ≤ 1000, 2 ≤ M ≤ 10^9) ədədlərini ehtiva edir. Növbəti sətir, nəzarət bloku qurulmalı olan məlumat blokunu ehtiva edir, ədədlər boşluqla ayrılıb.
Çıxış faylının ilk sətirində, əgər verilmiş məlumat bloku üçün nəzarət bloku qurmaq mümkündürsə YES, əks halda NO yazın. Əgər nəzarət bloku qurmaq mümkündürsə, ikinci sətirdə nəzarət blokunu yazın. Ədədləri boşluqla ayırın. Əgər bir neçə həll varsa, onlardan hər hansı birini çıxış edə bilərsiniz.
Nümunə 1