Car race
In city N, a stage of the World Championship for Formula-0 class cars will take place in the near future. Since the organizers did not manage to build a special racetrack for this competition, it was decided to hold the race on the city streets.
City N has intersections, some of which are connected by roads with two-way traffic. Moreover, any two intersections are connected by no more than one road, and it is possible to travel between any pair of intersections via the existing roads.
The race track must be circular, meaning it must start and end at the same intersection, and no intersection should be visited more than once along the way.
During the initial preparation stage, the organizing committee compiled a list of all the roads in the city, and now it's time to use it. The first question that needs to be answered is whether a suitable circular track exists in the city. Of course, if the answer is negative, the organizers will have to urgently build a few more roads. However, there is a problem: the organizers suspect that some roads in the list might be listed more than once, as the list was not compiled very carefully.
Write a program that, given the list of roads, determines whether a circular track can be organized in the city.
Input
The first line contains two integers: the number of intersections in city N and the number of roads in the list.
The next lines describe the roads. Each road is defined by two numbers and — the intersection numbers it connects. Since the roads are bidirectional, the pairs of numbers and describe the same road.
Output
Print "YES" if a circular race track can be organized in the city, and "NO" otherwise.