Відсутні мости#8555

Відсутні мости

1 секунда
128 мегабайтів
Середня

На Рис.1 зображена схема, що складається з островів, позначених точками і пронумерованих від до , та мостів, зображених лініями, кожна з яких з'єднує різні острови.

prb8555.gif

По кожному мосту можна рухатися в обох напрямках. Завдання полягає в тому, щоб, починаючи з одного острова, відвідати кожен міст рівно один раз і повернутися в початкову точку. Такий обхід називається all-bridges-walk.

Розв'язати таке завдання для островів і мостів, зображених на Рис.1, неможливо. Однак, якщо додати кілька мостів, all-bridges-walk стає можливим — наприклад, додавши нові мости, що з'єднують острів з островом і острів з островом . На Рис.2 показана схема з чотирма островами і трьома мостами. Якщо для цієї схеми буде запропоновано завдання all-bridges-walk, то двох мостів від острова до острова буде достатньо для успішного виконання завдання.

У даній країні є островів і мостів. Напишіть програму, що знаходить мінімальну кількість мостів, які потрібно добудувати, щоб виконати all-bridges-walk.

Вхідні дані

Перший рядок стандартного вводу містить натуральні числа і (n \le 1000, m \le 10000). На наступних рядках дані мости, задані парами номерів островів.

Вихідні дані

У першому рядку виведіть число необхідних нових мостів. Наступні рядків повинні містити нові мости, задані двома номерами островів, які ці мости з'єднують. Якщо оптимальних рішень декілька, виведіть будь-яке з них. Якщо нові мости не потрібні, виведіть .

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading