Jordan 测度是一种在 $\mathbb{R}^n$ 空间中测量集合的方法。在本题中,我们仅考虑二维空间(笛卡尔平面)。集合 $S$ 的测度是一个非负实数,记作 $\mu(S)$。在大多数情况下,图形的测度就是它的面积。
如果 $S$ 是一个边平行于坐标轴且边长分别为 $a$ 和 $b$ 的矩形,则 $\mu(S) = a \cdot b$,此时 $S$ 被称为简单矩形。如果 $S$ 是有限个简单矩形的不交并($S = R_1 \sqcup \dots \sqcup R_n$),则 $\mu(S) = \mu(R_1) + \dots + \mu(R_n)$,此时 $S$ 被称为简单集。虽然 Jordan 测度也可以测量非简单集,但本题中不需要。
你拥有一个具有 $n$ 个顶点且边平行于坐标轴的多边形,并希望根据定义计算其测度。已知该图形是一个简单集,因此你需要将其分割为若干个互不相交的简单矩形。由于你非常懒,不想进行多次计算,所以你需要将该图形分割为数量尽可能少的矩形。
输入格式
输入的第一行包含一个整数 $n$:多边形的顶点数($4 \le n \le 500$,$n$ 为偶数)。接下来的 $n$ 行,每行包含两个空格分隔的整数:多边形顶点的坐标,按逆时针顺序给出。坐标的绝对值不超过 $10^4$。保证该多边形是一个简单集,具有非零面积,且没有自接触或自相交。
输出格式
输出的第一行必须包含 $k$,即矩形的最小可能数量。接下来的 $k$ 行,每行必须包含四个整数:矩形两个对顶点的坐标。输出中的任意两个矩形不得相交。所有矩形的并集必须恰好构成输入的多边形。
样例
输入 1
6 0 0 2 0 2 1 1 1 1 2 0 2
输出 1
2 0 0 2 1 0 1 1 2