波尔图和附近的杜罗河谷以出产波特酒而闻名。来自世界各地的葡萄酒爱好者来到这里,享受这种在原产地酿造的甜美葡萄酒。国际波特酒鉴赏家协会(ICPC)正在组织前往杜罗河上游葡萄园的参观活动。为了让游客的参观更加愉快,ICPC 最近在葡萄园上方安装了遮阳篷。这些遮阳篷可以在游客漫步在葡萄藤间品尝陈年波特酒时,保护他们免受阳光灼伤。
不幸的是,遮阳篷有一个小问题。葡萄的生长需要阳光和水。虽然遮阳篷可以让足够的阳光透进来,但它们是完全防水的。这意味着雨水可能无法到达下方的葡萄园。如果不采取任何措施,今年的葡萄酒收成将岌岌可危!
ICPC 希望通过在遮阳篷上打孔来解决这个问题,以便让雨水流向下方。由于雨季开始前时间紧迫,ICPC 希望通过最少数量的打孔来实现这一目标。
我们将考虑该问题的二维版本。待灌溉的葡萄园是 $x$ 轴上的一个区间,遮阳篷被建模为 $x$ 轴上方的线段。遮阳篷是倾斜的,即不平行于 $x$ 轴或 $y$ 轴(参见图 F.1 中的示例)。雨水从无限高处垂直落下。当雨水落在遮阳篷上时,它会流向遮阳篷的较低端并从那里落下,除非在雨水落点和遮阳篷较低端之间有一个孔——在这种情况下,雨水会直接穿过孔洞落下。雨水从遮阳篷落下后,会继续垂直下落。这一过程重复进行,直到雨水到达地面($x$ 轴)。
图 F.1:样例输入 1 的说明。(a) 黑色斜线段表示遮阳篷,底部的绿色线段表示葡萄园。(b) 一个最优解:通过在红圈位置对两个遮阳篷打孔,一些起始于葡萄园上方的雨水(蓝色所示)将到达葡萄园。
出于法律原因,你必须确保至少有一些到达葡萄园的雨水是源自葡萄园正上方的。这是为了防止任何葡萄园从邻近的葡萄园“窃取”所有雨水(参见第二个样例输入以获取示例)。
输入格式
输入的第一行包含三个整数 $\ell, r$ 和 $n$,其中 $(\ell, r)$ ($0 \le \ell < r \le 10^9$) 是代表葡萄园的区间,$n$ ($0 \le n \le 5 \cdot 10^5$) 是遮阳篷的数量。接下来的 $n$ 行中,每一行描述一个遮阳篷,包含四个整数 $x_1, y_1, x_2, y_2$,其中 $(x_1, y_1)$ 是遮阳篷较低端的位置,$(x_2, y_2)$ 是较高端的位置 ($0 \le x_1, x_2 \le 10^9, x_1 \neq x_2$,且 $0 < y_1 < y_2 \le 10^9$)。
输入中的 $x$ 坐标($\ell, r$ 以及所有遮阳篷的 $x_1$ 和 $x_2$ 值)均各不相同。输入中描述的遮阳篷不会相交,且遮阳篷的任何端点都不会位于另一个遮阳篷上。
输出格式
输出为了使一些源自葡萄园上方的雨水落入葡萄园所需的最少打孔数量。
样例
样例输入 1
10 20 5 32 50 12 60 30 60 8 70 25 70 0 80 15 30 28 40 5 20 14 25
样例输出 1
2
样例输入 2
2 4 2 3 2 0 3 5 2 1 5
样例输出 2
1