CF2068A Condorcet Elections

Description

It is a municipality election year. Even though the leader of the country has not changed for two decades, the elections are always transparent and fair. There are $ n $ political candidates, numbered from $ 1 $ to $ n $ , contesting the right to govern. The elections happen using a variation of the Ranked Voting System. In their ballot, each voter will rank all $ n $ candidates from most preferable to least preferable. That is, each vote is a permutation of $ \{1, 2, \ldots, n\} $ , where the first element of the permutation corresponds to the most preferable candidate. We say that candidate $ a $ defeats candidate $ b $ if in more than half of the votes candidate $ a $ is more preferable than candidate $ b $ . As the election is fair and transparent, the state television has already decreed a list of $ m $ facts—the $ i $ -th fact being "candidate $ a_i $ has defeated candidate $ b_i $ "—all before the actual election! You are in charge of the election commission and tallying up the votes. You need to present a list of votes that produces the outcome advertised on television, or to determine that it is not possible. However, you are strongly encouraged to find a solution, or you might upset higher-ups.

Input Format

The first line contains integers $ n $ and $ m $ ( $ 2 \le n \le 50 $ , $ 1 \le m \le \frac{n(n-1)}{2} $ ) — the number of parties and the number of pairs with known election outcomes. The $ i $ -th of the following $ m $ lines contains two integers $ a_i $ and $ b_i $ ( $ 1 \le a_i, b_i \le n $ , $ a_i \ne b_i $ ) — candidate $ a_i $ defeats candidate $ b_i $ . Each unordered pair $ \{a_i, b_i\} $ is given at most once.

Output Format

Print $ \texttt{YES} $ if there is a list of votes matching the facts advertised on television. Otherwise, print $ \texttt{NO} $ . If there is a valid list of votes, print one such list in the following lines. Print the number $ k $ of votes cast ( $ 1 \le k \le 50\,000 $ ). It can be shown that if there is a valid list of votes, there is one with at most $ 50\,000 $ votes. Then print $ k $ lines. The $ i $ -th of these lines consists of a permutation of $ \{1, 2, \ldots, n\} $ describing the $ i $ -th vote. The first number in the permutation is the most preferable candidate and the last one is the least preferable candidate. For $ 1\le i\le m $ , $ a_i $ shall appear earlier than $ b_i $ in more than $ k{/}2 $ of the $ k $ permutations. For pairs of candidates $ \{a, b\} $ not appearing in the election requirements list, the outcome can be arbitrary, including neither of $ a $ and $ b $ defeating the other.

Explanation/Hint

In the second sample, Observe that candidate $ 1 $ defeats candidate $ 2 $ because it goes earlier in two out of three voters' permutations, which is more than half of all votes. Similarly, candidate $ 2 $ defeats candidate $ 3 $ , and candidate $ 3 $ defeats candidate $ 1 $ .