რბოლა

დროის ლიმიტი: 1 წმ

მეხსიერების ლიმიტი: 64 მეგაბაიტი

შემავალი მონაცემები: stdin

გამომავალი მონაცემები: stdout


            გიორგი უცნაურ რბოლაში იწყებს მონაწილეობას. წრფივ გზაზე n რაოდენობის ჩექპოინთია, რომლებშიც გიორგი უნდა გაჩერდეს. მას ნებისმიერი ჩექფოინთიდან შეუძლია რბოლის დაწყება, მაგრამ ერთი პრობლემაა. მას გაჩერება მხოლოდ ყოველ p მეტრში შეუძლია.

            ანუ თუ გიორგი რბოლას დაიწყებს y წერტილში იგი გაჩერდება y, y+p, y+2p… წერტილებში. გიორგი p მანძილს თვითონ არ ირჩევს.

 

            რბოლის ორგანიზატორებს აქვთ სია, რომელშიც m რაოდენობის რიცხვი წერია. გიორგის შეუძლია, რომ p მანძილი მხოლოდ ამ სიიდან აირჩიოს. მისი მიზანია გაიაროს ყველა ჩექფოინთი ყველაზე დიდი p ინტერვალით, რაც შესაძლებელია, რათა ბევრი გაჩერება არ მოუწიოს. თუ შეძლებს ამ მისიის შესრულებას უნდა ამობეჭდოთ პირველ ხაზზე “YES” და მეორე ხაზზე სფეისით გამოყოფილი y და p. თუ ვერ შეძლებს “NO”.

 

შესატანი მონაცემები:  პირველ ხაზში თქვენ გადმოგეცემათ n და m (2 <= n <= 300000  და 1 <= m <= 300000). შემდეგ ხაზზე n რაოდენობის რიცხვი x, რომლებიც ზრდადობითაა დალაგებული და აღნიშნავს, თუ რა წერტილებშია განლაგებული ჩექფოინთები (1<=x<=10^18). მესამე ხაზზე კი გადმოგეცემათ m რაოდენობის რიცხვი p, საიდანაც უნდა აირჩიოს გიორგიმ მანძილი (1<= p <= 10^18).

გამოსატანი მონაცემები: თუ მისია შესრულებადია, პირველ ხაზზე გამოიტანეთ “YES” და მეორე ხაზზე - სფეისით გამოყოფილი y და p. თუ ვერ შეძლებს “NO”.

 

 




მაგალითები

შესატანი მონაცემები
4 3 8 32 74 242 6 7 8 დაკოპირება
გამოსატანი მონაცემები
YES 8 6 დაკოპირება

შენიშვნა

გიორგი რბოლას იწყებს პირველ ჩექფოინთში საწყისი წერტილიდან 8 მეტრის დაშორებით და ჩერდება ყოველ 6 მეტრში.

 

 

ამოცანა და ტესტები მომზადებულია მიხეილ მუხიგულის მიერ