在 $x-y$ 平面上分布着若干个矩形。矩形的四条边分别平行于 $x$ 轴或 $y$ 轴,且所有矩形都位于后文指定的范围内。矩形的坐标没有其他限制。
平面被一个或多个矩形的边所包围的区域分割。在图 C.1 的示例中,三个矩形相互重叠,平面被分割成了八个区域。
矩形可能会以更复杂的方式重叠。例如,两个矩形可能有重叠的边,它们可能共享角点,和/或它们可能是嵌套的。图 C.2 展示了这些情况。
你的任务是编写一个程序,计算被这些矩形分割后的平面区域数量。
输入格式
输入包含多个数据集。每个数据集的格式如下:
$n$ $l_1 \ t_1 \ r_1 \ b_1$ $l_2 \ t_2 \ r_2 \ b_2$ $\vdots$ $l_n \ t_n \ r_n \ b_n$
数据集以 $n$ ($1 \le n \le 50$) 开头,表示平面上矩形的数量。接下来的 $n$ 行每行描述一个矩形。第 $i$ 行包含四个整数 $l_i, t_i, r_i, b_i$,它们是第 $i$ 个矩形的坐标;$(l_i, t_i)$ 给出了矩形左上角的 $x-y$ 坐标,$(r_i, b_i)$ 给出了矩形右下角的坐标 ($0 \le l_i < r_i \le 10^6$, $0 \le b_i < t_i \le 10^6$, 对于 $1 \le i \le n$)。这四个整数由空格分隔。
输入以单个零结束。
输出格式
对于每个数据集,输出一行,包含被矩形边分割后的平面区域数量。
图 C.1. 三个矩形将平面分割为八个区域。这对应于样例输入的第一个数据集。$x$ 轴和 $y$ 轴仅用于说明,因此它们不分割平面。
图 C.2. 以更复杂方式重叠的矩形。这对应于第二个数据集。
样例
输入 1
3 4 28 27 11 15 20 42 5 11 24 33 14 5 4 28 27 11 12 11 34 2 7 26 14 16 14 16 19 12 17 28 27 21 2 300000 1000000 600000 0 0 600000 1000000 300000 0
输出 1
8 6 6