Олимпиадный тренинг

Задача . B. Фигуры Хладни


У Инаки есть диск, длина окружности которого равна \(n\) единицам. Окружность разделена на равные части \(n\) точками, пронумерованными от \(1\) до \(n\) так, что точки \(i\) и \(i + 1\) (\(1 \leq i < n\)) соседние, кроме того, соседними являются точки \(n\) и \(1\).

На диске нарисованы \(m\) хорд, соединяющих некоторые из данных \(n\) точек.

Инака хочет понять, имеет ли ее диск вращательную симметрию, т. е. существует ли целое число \(k\) (\(1 \leq k < n\)), такое, что если повернуть все хорды по часовой стрелке на \(k\) единиц, то диск будет выглядеть так же.

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

Первая строка содержит два целых числа \(n\) и \(m\) (\(2 \leq n \leq 100\,000\), \(1 \leq m \leq 200\,000\)) — количество точек и число хорд, соответственно.

В \(i\)-й из следующих \(m\) строк находятся два целых числа \(a_i\) и \(b_i\) (\(1 \leq a_i, b_i \leq n\), \(a_i \neq b_i\)), означающих, что есть хорда, соединяющая точки \(a_i\) и \(b_i\).

Гарантируется, что никакие две хорды не совпадают.

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

Выведите «Yes» если диск имеет вращательную симметрию, и «No» в обратном случае (без кавычек).

Вы можете выводить каждую букву в любом регистре (строчную или заглавную).

Примечание

Первые два примера показаны на рисунке ниже. Оба диска совпадают с собой после поворота на \(120\) градусов.


Примеры
Входные данныеВыходные данные
1 12 6
1 3
3 7
5 7
7 11
9 11
11 3
Yes
2 9 6
4 5
5 6
7 8
8 9
1 2
2 3
Yes
3 10 3
1 2
3 2
7 2
No
4 10 2
1 6
2 7
Yes

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя