Книжный клуб Порто полон энтузиазма в связи с ежегодным мероприятием по обмену книгами! Каждый год участники приносят свою любимую книгу и пытаются найти другую понравившуюся книгу, которая принадлежит кому-то, кто готов с ними торговать.
Я был на этой книжной бирже раньше, и определенно не хочу пропустить ее в этом году. Но чувствую, что торговля должна быть улучшена. В прошлом пары участников, заинтересованные в книгах друг друга, просто обменивались: представьте, что человек принес книгу, которая понравилась человеку , и наоборот, тогда и обменяются своими книгами.
Затем я понял, что многие участники остались с той же книгой, с которой они пришли ... Если бы вместо поиска пар я стал искать тройки, то смог бы найти более стоящие обмены! Представьте, что участнику нравится только книга участника , в то время как нравится только книга , а нравится книга . Эти три человека могут обменять свои книги в цикле, и все будут счастливы!
Но зачем останавливаться на тройках? Циклы могут быть больше и больше! Не могли бы Вы помочь мне узнать, можно ли всем выйти с новой книгой? Будьте осторожны, потому что участники не отдадут свою книгу, не получив взамен понравившуюся.
Зная членов книжного клуба и книги, которые им нравятся, сможем ли мы найти циклы, чтобы каждый получил новую книгу?
В первой строке заданы два целых числа: — количество человек и — общее количество "деклараций интереса". Каждая из следующих строк содержит два целых числа и , что указывает на то, что члену нравится книга, которую принес член . Числа и никогда не будут одинаковыми (участнику никогда не нравится принесенная им же книга).
Выведите YES, если мы сможем найти новую книгу для каждого члена клуба, и NO если это невозможно.