E. Интересный граф и яблоки
ограничение по времени на тест
1 second
ограничение по памяти на тест
64 megabytes
ввод
stdin
вывод
stdout

Хексадесимал очень любит рисовать. Её перу принадлежит большая коллекция графов, как ориентированных, так и не очень. Недавно она начала работу над натюрмортом «интересный граф и яблоки». Интересным считается такой неориентированный граф, у которого каждая вершина принадлежит только одному циклу: забавному кольцу, и, причём, не принадлежит никакому другому циклу. Забавное кольцо — это такой цикл, который проходит через все вершины графа ровно один раз. Также, к забавным циклам относятся петли.

Яблоки она уже нарисовала и некоторые рёбра в графе тоже. Но теперь стало непонятно, как же соединить оставшиеся вершины, чтобы получился в результате интересный граф? Ответ должен содержать наименьшее количество добавляемых рёбер. И, помимо всего прочего, ответ должен быть лексикографически наименьшим. Набор ребер (x1, y1), (x2, y2), ..., (xn, yn), где xi ≤ yi, лексикографически меньше набора (u1, v1), (u2, v2), ..., (un, vn), где ui ≤ vi, в том случае, если последовательность целых чисел x1, y1, x2, y2, ..., xn, yn лексикографически меньше последовательности u1, v1, u2, v2, ..., un, vn. Если Вы не справитесь, Хексадесимал Вас съест. Живьём.

Входные данные

В первой строке входных данных записана пара целых чисел n и m (1 ≤ n ≤ 50, 0 ≤ m ≤ 2500) — количество вершин и количество рёбер соответственно. В следующих строках записаны пары чисел xi и yi (1 ≤ xi, yi ≤ n) — вершины, между которыми уже проведены рёбра. Исходный граф может содержать кратные ребра и петли.

Выходные данные

В первой строке выведите слово «YES» или «NO»: можно или нет построить интересный граф. Если ответ «YES», то во второй строке выведите k — количество рёбер, которые нужно добавить к исходному графу. И, наконец, выведите k строк: пары вершин xj и yj, между которыми нужно провести рёбра. Результат может содержать кратные рёбра и петли. k может быть равно нулю.

Примеры
Входные данные
3 2
1 2
2 3
Выходные данные
YES
1
1 3