À la maternelle, l'une des activités les plus chronophages consistait à découper des formes dans une feuille de papier avec des ciseaux à bouts ronds. Considérons un modèle simplifié de cette tâche : vous commencez avec une feuille de papier infiniment grande sur laquelle sont dessinés $N$ rectangles disjoints alignés avec les axes, et les coupes sont des lignes droites infiniment longues. Une coupe ne doit pas « entamer » un rectangle : elle ne doit passer par aucun point situé strictement à l'intérieur d'un rectangle. (Les coupes qui passent exactement le long d'un bord de rectangle ou par un coin de rectangle sont autorisées.) Lorsque vous coupez un morceau de papier, celui-ci se sépare en deux morceaux distincts que vous continuez à couper indépendamment l'un de l'autre (les coupes futures sur un morceau n'affectent pas les autres morceaux).
Votre objectif est d'effectuer une séquence de coupes de sorte que chaque rectangle se retrouve sur son propre morceau de papier (car, une fois cette étape accomplie, il est assez facile de découper chaque rectangle précisément).
Déterminez le nombre minimum de coupes (pas nécessairement alignées avec les axes) nécessaires pour isoler les rectangles de cette manière. Si la tâche est impossible, affichez impossible.
Entrée
La première ligne de l'entrée contient un entier $N$ ($1 \le N \le 100$), le nombre de rectangles.
Chacune des $N$ lignes suivantes décrit un rectangle. Chaque ligne contient quatre entiers séparés par des espaces $x_1, y_1, x_2$ et $y_2$ ($|x_1|, |y_1|, |x_2|, |y_2| \le 10^9$, $x_1 < x_2$, $y_1 < y_2$), où $(x_1, y_1)$ est le coin inférieur gauche du rectangle et $(x_2, y_2)$ est le coin supérieur droit du rectangle.
Il est garanti que les rectangles sont disjoints : aucun rectangle ne s'intersecte en un point commun, y compris sur leurs bords ou leurs coins.
Sortie
Affichez le nombre minimum de coupes nécessaires pour séparer tous les rectangles. (N'incluez pas les coupes supplémentaires qui seraient nécessaires pour rogner le papier vierge autour des marges des rectangles une fois séparés.) Si cette tâche est impossible, affichez impossible.
Remarque
Les deux premières coupes d'une séquence possible permettant de séparer les rectangles sont illustrées ci-dessous. La première coupe est tracée en rouge et la seconde en bleu. Notez que la coupe bleue n'est pas valide avant la coupe rouge, car elle aurait entamé le rectangle situé sur le côté droit.
Exemples
Entrée 1
6 -1 1 0 4 1 0 3 1 2 2 3 3 4 0 5 3 2 4 5 5 6 3 7 5
Sortie 1
5
Entrée 2
4 0 -1 1 2 2 -1 5 0 -10 3 3 4 4 1 5 13
Sortie 2
impossible