Флешмоб
시간 제한2초메모리 제한1024 MB
각 참가자가 가로 또는 세로 선분을 훑고 지나갈 때, 모든 선분이 최소 한 개의 선물을 포함하도록 선물을 최소 개수로 배치하거나 불가능을 판정한다.
문제
Для участников олимпиады на главной площади города <<У>> планируется игра в форме флешмоба. Главная площадь замощена плитками, образующими клетчатое поле.
Сначала составляется план игры: каждый участник флешмоба получает номер в очереди выхода на площадь и координаты двух различных плиток, находящихся в одном ряду или столбце. После этого на площади раскладываются призы, затем участники выходят на площадь по очереди. Очередной участник забирает все призы, находящиеся в указанных ему клетках, и клетках, находящихся между ними.
Призы должны быть разложены так, чтобы каждому участнику достался по крайней мере один приз.
Требуется написать программу, которая по плану игры находит минимальное необходимое количество призов, и на какие именно плитки их следует разложить.
입력
В первой строке входного файла содержится число --- количество участников флешмоба (\mbox{}). Каждая из последующих строк содержит четыре целых числа , , , --- координаты плиток для -го участника (; либо , либо ). Участники перечислены в порядке выхода на площадь.
출력
Первая строка выходного файла должна содержать число --- минимальное количество призов, которые должны быть разложены на площади. Каждая из последующих строк должна содержать два числа и --- координаты плитки, на которой должен лежать -й приз.
Если вариантов размещения призов, удовлетворяющих условию задачи, несколько, то выведите любой из них. Если решения не существует, выведите единственное число .