eolymp
bolt
Try our new interface for solving problems
Problems

Wallpapering (RU)

Wallpapering (RU)

Time limit 1 second
Memory limit 64 MiB

Однажды майор Пронин затеял в квартире ремонт. В одной из стен на кухне по плану потребовалось последовательно проделать (N1) прямоугольных вентиляционных отверстий с горизонтальными и вертикальными сторонами (1N100). Если оказывалось, что очередное отверстие пересекается с уже проделанными, то майор вырезал только нетронутую часть соответствующего прямоугольника.

Следующая стадия после ремонта – это поклейка обоев. В магазине напротив майор может заказать не более (2N1)^2 прямоугольных кусков обоев любых размеров c ненулевой площадью. Он хочет обклеить стену кусками обоев так, чтобы:

  1. Вентиляционные отверстия не были заклеены даже частично.

  2. Никакие два куска не пересекались (касаться сторонами они при этом могут).

  3. На стене не осталось бы непокрытой области.

Input data

Рассмотрим декартову систему координат, оси которой параллельны сторонам отверстий и стены.

Сначала вводится число N (1N100), далее – описание N прямоугольников. Первый прямоугольник описывает положение стены в нашей системе координат, остальные (N1) ― положения отверстий в порядке их появления. Стороны всех прямоугольников параллельны осям координат. Каждый прямоугольник задаётся координатами своих левого нижнего и правого верхнего углов: x_1, y_1, x_2, y_2. Координаты — целые числа, не превосходящие по модулю 31000, x_1 < x_2, y_1 < y_2.

Прямоугольники, обозначающие положение отверстий, могут пересекаться и касаться, поскольку это могло быть необходимо в ходе ремонта. Разумеется, все вентиляционные отверстия находятся в стене, то есть не выходят за границы первого прямоугольника.

Output data

Вначале выведите количество кусков обоев K, которое нужно заказать в магазине (K должно быть не больше (2N1)^2). Далее выведите схему поклейки: K прямоугольников, обозначающих места расположения заказанных кусков. Для каждого прямоугольника нужно вывести координаты его левого нижнего и правого верхнего углов. Все координаты должны быть целыми числами. Гарантируется, что решение существует.

Если возможных способов несколько, выведите любой.

Examples

Input example #1
2
-1 -1 2 2
0 0 1 1
Output example #1
5
-1 -1 2 0
-1 0 0 2
0 1 1 2
1 0 2 1
1 1 2 2