Автогонки
У місті N незабаром відбудеться етап чемпіонату світу з автоперегонів серед автомобілів класу Формула-0. Оскільки організатори не встигли побудувати спеціальний автодром для цих змагань, було прийнято рішення провести перегони на вулицях міста.
У місті N є перехресть, деякі з яких з'єднані дорогами з двостороннім рухом. При цьому будь-які два перехрестя з'єднані не більше ніж однією дорогою, і по існуючих дорогах можна дістатися від будь-якого перехрестя до будь-якого іншого.
Траса для змагань повинна бути круговою, тобто починатися і закінчуватися на одному і тому ж перехресті, при цьому жодне перехрестя не повинно зустрічатися на шляху більше одного разу.
На попередньому етапі підготовки оргкомітет склав список усіх доріг міста, і тепер настав час його використати. Перше питання, яке необхідно вирішити, — це питання про існування в місті необхідної кругової траси. Зрозуміло, якщо відповідь виявиться негативною, організаторам доведеться терміново будувати кілька нових доріг. Однак є проблема: організатори підозрюють, що деякі дороги в списку вказані більше одного разу, оскільки він був складений не дуже ретельно.
Напишіть програму, яка за заданим списком доріг визначить, чи можлива організація у місті необхідної кругової траси.
Вхідні дані
Перший рядок містить два цілих числа: — кількість перехресть у місті N і — кількість доріг у списку.
Наступні рядків описують дороги. Кожна дорога задається двома числами і — номери перехресть, які вона з'єднує. Оскільки дороги двостронні, то пари чисел та описують одну й ту ж дорогу.
Вихідні дані
Виведіть "YES", якщо у місті можна організувати кругову трасу для змагань, і "NO" у протилежному випадку.