Car race#1390

Car race

1 second
128 megabytes
Very easy

In city N, a stage of the World Championship for Formula-0 class cars will soon take place. Since the organizers did not manage to build a special racetrack for the competition, it was decided to hold the race on city streets.

City N has intersections, some of which are connected by two-way roads. Any two intersections are connected by at most one road, and it is possible to travel between any pair of intersections using the existing roads.

The race track must be circular: it should start and end at the same intersection, and no intersection should be visited more than once along the way.

During the initial preparation, the committee compiled a list of all roads in the city, and now it is time to use it. The first question is whether the required circular track exists in the city. If not, the organizers will urgently need to build several new roads. However, there is a problem: the organizers suspect that some roads may be listed multiple times, since the list was not made very carefully.

Write a program that, given the list of roads, determines whether it is possible to organize a circular race track in the city.

Input

The first line contains two integers: n~(1 \le n \le 1000), the number of intersections in city N, and m~(0 \le m \le 10^5), the number of roads in the list.

The next lines describe the roads. Each road is described by two numbers and v~(1 \le u, v \le n, u \ne v) — the numbers of the intersections it connects. Since the roads are bidirectional, the pairs and describe the same road.

Output

Print "YES" if a circular race track can be organized in the city, and "NO" otherwise.

Examples

Example 1

Loading
Loading

Example 2

Loading
Loading