Книжковий клуб
Книжковий клуб Порто з нетерпінням чекає щорічного заходу з обміну книгами! Щороку учасники приносять свою улюблену книгу і намагаються знайти іншу, яка їм сподобається, серед книг, принесених іншими учасниками, готовими до обміну.
Я вже брав участь у цій книжковій біржі і не хочу пропустити її цього року. Проте, мені здається, що процес обміну можна вдосконалити. У минулому учасники, які були зацікавлені в книгах один одного, просто обмінювалися: наприклад, якщо учасник приніс книгу, яка сподобалася учаснику , і навпаки, тоді і обмінювалися книгами.
Однак я помітив, що багато учасників залишалися з тією ж книгою, з якою прийшли. Якби ми шукали не лише пари, а й трійки, то могли б організувати більш ефективні обміни! Уявіть, що учаснику подобається книга учасника , подобається книга учасника , а подобається книга учасника . Ці троє можуть обмінятися книгами по колу, і всі будуть задоволені!
Але чому зупинятися на трійках? Цикли можуть бути ще більшими! Чи можете ви допомогти мені визначити, чи можуть усі учасники отримати нову книгу? Важливо пам'ятати, що учасники не віддадуть свою книгу, якщо не отримають взамін ту, яка їм подобається.
Знаючи членів книжкового клубу та книги, які їм подобаються, чи можемо ми знайти такі цикли, щоб кожен отримав нову книгу?
Вхідні дані
У першому рядку задано два цілі числа: — кількість учасників і — загальна кількість "декларацій інтересу". Кожен з наступних рядків містить два цілі числа і , що означає, що учаснику подобається книга, яку приніс учасник . Числа і ніколи не будуть однаковими (учаснику ніколи не подобається книга, яку він сам приніс).
Вихідні дані
Виведіть YES, якщо ми можемо знайти нову книгу для кожного члена клубу, і NO, якщо це неможливо.