#CF1984H. 塔的占领

塔的占领

H. 塔的占领

时间限制:2 秒
内存限制:256 兆字节

nn 座塔,位于 nn 个不同的点 (x1,y1),(x2,y2),,(xn,yn)(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n),满足任意三点不共线,且任意四点不共圆。最初,你拥有塔 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2),你想要占领所有塔。为此,你可以任意多次执行以下操作:

  • 选择两座你拥有的塔 PPQQ,以及一座你未拥有的塔 RR,使得经过 PPQQRR 的圆包含所有 nn 座塔在其内部。
  • 然后,占领三角形 PQR\triangle PQR 内部及边界上的所有塔(包括 RR 本身)。

一个攻击计划是指一系列选择 RRR1,R2,,RkR_1, R_2, \dots, R_k)的序列,按照上述操作最终占领所有塔。注意:两个攻击计划仅当它们在某次操作中选择的 RR 不同时才视为不同;特别地,如果两个计划使用了相同的 RR 序列但不同的 PPQQ,它们被认为是相同的。

请计算最短长度的攻击计划的数量。注意,可能无法占领所有塔,此时答案为 00

由于答案可能很大,请对 998244353998244353 取模输出。

输入

第一行包含一个整数 tt1t2501 \le t \le 250)——测试用例的数量。

每个测试用例的第一行包含一个整数 nn4n1004 \le n \le 100)——塔的数量。

接下来 nn 行,第 ii 行包含两个整数 xix_iyiy_i104xi,yi104-10^4 \le x_i, y_i \le 10^4)——第 ii 座塔的位置。最初,你拥有塔 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2)

所有塔的位置互不相同,任意三点不共线,任意四点不共圆。

所有测试用例的 nn 之和不超过 10001000

输出

对于每个测试用例,输出一个整数——最短长度的攻击计划的数量,对 998244353998244353 取模。

示例

输入

3
5
1 1
2 5
3 3
4 2
5 4
6
1 1
3 3
1 2
2 1
3 10000
19 84
7
2 7
-4 -3
-3 6
3 1
-5 2
1 -4
-1 7

输出

1
0
10

注释

在第一个测试用例中,只有一种最短长度的攻击计划,如下所示:

  • 使用操作,P=P =11Q=Q =22R=R =55。经过这三座塔的圆包含所有塔在其内部,结果占领了塔 33 和塔 55
  • 使用操作,P=P =55Q=Q =11R=R =44。经过这三座塔的圆包含所有塔在其内部,结果占领了塔 44

在第二个测试用例中,例如,你永远无法占领位于 (3,10000)(3,10000) 的塔。