BaoBao 最近在玩著名的游戏《艾尔登法环》(Elden Ring)。这是一款开放世界游戏,你可以在其中控制角色在不同地点间穿梭。然而,你的角色也可能陷入陷阱,你需要想办法逃脱。现在,BaoBao 的角色被困在一个充满致命激光的二维平面上。平面上有 $n$ 个激光发生器(每个都可以看作一个点),它们两两之间都会发射激光束(因此总共有 $\frac{n(n-1)}{2}$ 条激光束)。激光束的起点和终点均为发生器所在点,且不会延伸至无穷远。
BaoBao 希望从点 $(0, 0)$ 出发,逃离到点 $(10^{10^{10^{10^{10}}}}, 10^{10^{10^{10^{10}}}})$,且过程中不能触碰任何激光束或发生器。为了实现这一目标,BaoBao 可以请求她的朋友 DreamGrid 移除任意数量的激光发生器,以及所有以这些发生器为起点或终点的激光束。请输出为了逃脱所需要移除的激光发生器的最小数量。
注意,BaoBao 不需要沿着特定的方向逃脱。如果需要,她的逃脱路线甚至可以是一条曲线。
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:
第一行包含一个整数 $n$ ($1 \le n \le 10^6$),表示激光发生器的数量。
接下来的 $n$ 行,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$ ($-10^9 \le x_i, y_i \le 10^9$),表示第 $i$ 个激光发生器的位置。
保证没有两个发生器重合,且没有任何激光束或发生器会触碰到 $(0, 0)$。
同时保证所有测试数据的 $n$ 之和不超过 $10^6$。
输出格式
对于每组测试数据,输出一行,包含一个整数,表示为了逃脱所需要移除的激光发生器的最小数量。
样例
样例输入 1
3 2 1 0 2 0 3 1 0 0 1 -1 -1 5 2 -1 1 2 -1 2 -2 -1 0 -2
样例输出 1
0 1 2
说明
下图展示了第二组和第三组样例。实心点和实线表示保留的激光发生器和激光束,空心点和虚线表示被移除的激光发生器和激光束。箭头表示逃脱路线。