eolymp
bolt
Try our new interface for solving problems
Problems

Домино

Домино

Набор домино состоит из прямоугольных костяшек, каждая из которых разделена на две половинки линией, параллельной более короткой стороне. На каждой из половинок нарисованы точки, количество которых соответствует числу от \textbf{0 }до \textbf{M }включительно. На костяшках полного набора домино обозначены все возможные различные пары чисел, например, если \textbf{M }равно \textbf{3}, то полный набор содержит \textbf{10 }костяшек: \textbf{(0, 0)}, \textbf{(0, 1)}, \textbf{(0, 2)}, \textbf{(0, 3)}, \textbf{(1, 1)}, \textbf{(1, 2)}, \textbf{(1, 3)}, \textbf{(2, 2)}, \textbf{(2, 3)}, \textbf{(3, 3)}. Из костяшек можно выкладывать цепочки, соединяя пары костяшек короткими сторонами, если количества точек на соседних с местом соединения половинках костяшек равны. Некоторые костяшки были удалены из полного набора. Требуется определить, какое минимальное количество цепочек нужно выложить из оставшихся в наборе костяшек, чтобы каждая из них принадлежала ровно одной цепочке. Напишите программу, которая по информации о наборе домино должна ответить, какое минимальное количество цепочек нужно выложить. \InputFile В первой строке содержится одно целое число \textbf{M }(\textbf{0 }≤ \textbf{M }≤ \textbf{100}), которое соответствует максимально возможному количеству точек на половинке костяшки. Во второй строке записано одно целое число \textbf{N}, равное количеству костяшек, удаленных из полного набора. Каждая \textbf{i}-я из последующих \textbf{N} строк содержит по два числа \textbf{A_i} и \textbf{B_i}. Это количества точек на половинках \textbf{i}-й удалённой костяшки. \OutputFile Вывести одно целое число \textbf{L }- минимальное количество цепочек.
Time limit 1 second
Memory limit 64 MiB
Input example #1
7
2
7 5
3 4
Output example #1
2
Author Andrey Stasyuk
Source 2005 XVIII All-Ukrainian Informatics Olympiad, Rovno, April 10 - 16, Round 2