题目描述
有一个点集 S,要满足下面三类限制:
P x y,要求 (x,y)∈S。 
H x y,要求对任意 y0,(x,y0)∈S 当且仅当 (x,y−y0)∈S。 
V x y,要求对任意 x0,(x0,y)∈S 当且仅当 (x−x0,y)∈S。 
求符合要求的 S 元素数最小值。
输入格式
输入的第一行是 n 表示操作个数。
之后 n 行每行首先是一个字符,然后输入两个整数,表示一个限制。
输出格式
输出一行一个整数,如果存在有限集 S 符合题意则输出该集合元素数,否则输出 −1。
样例
样例输入 1
8
H -1 3
P 2 2
V 0 1
V 2 2
P 1 1
V 0 1
V 800 800
V 802 800
样例输出 1
6
样例输入 2
4
P 1 2
H 1 6
V 0 4
V 3 4
样例输出 2
-1
提示
【样例 1 解释】
由 P 1 1 和 V 0 1,也就是 (1,1)∈S 和 (x,1)∈S⟺(0−x,1)∈S 可知 (−1,1)∈S。
接下来将 (−1,1)∈S  代入 H -1 3 可得 (−1,2)∈S。
分别将 (−1,2),(2,2)∈S 代入 V 2 2 可得 (3,2),(0,2)∈S。
最终 S 至少要有 (1,1),(−1,1),(−1,2),(0,2),(2,2),(3,2) 六个点。
【样例 2 解释】
将 (1,2) 代入 H 1 6,得 (1,4)∈S。
接下来将 (x,4) 代入 V 0 4,可得 (−x,4)∈S。
然后将 (−x,4) 代入 V 3 4,可得 (x+3,4)∈S。
因此 (1,4),(4,4),(7,4),… 都在 S 内,S 是无限集。
【数据范围】
m 表示 H 类限制和 V 类限制数总和。
| Subtask | 
n≤ | 
m≤ | 
x,y∈ | 
特殊性质 | 
依赖子任务 | 
分值 | 
| 1 | 
 | 
0 | 
 | 
S 有限 | 
 | 
5 | 
| 2 | 
=3 | 
=2 | 
[−400,400] | 
 | 
| 3 | 
100 | 
10 | 
[505,1000] | 
S 有限 | 
20 | 
| 4 | 
[0,210] | 
 | 
2 | 
10 | 
| 5 | 
6.4×105 | 
 | 
[−400,400] | 
20 | 
| 6 | 
 | 
 | 
S 有限 | 
1,3 | 
15 | 
| 7 | 
 | 
4,5,6 | 
25 | 
上述表格中,留空表示该栏和全部数据的限制相同。
对于全部数据,输入皆为整数,0≤n,m≤106,x,y∈[−103,103]。