你是巧克力销售团队的经理。你们团队习惯每两小时休息一次,期间会供应公司新推出的各种巧克力产品。大家对茶歇非常期待,以至于经常会抬头看墙上的时钟。
最近,你们团队搬到了新的办公室,并刚刚布置好了办公桌。一位团队成员请求在她的办公桌正前方的墙上挂一个时钟,这样她就不会错过茶歇时间。自然地,大家都附和了她的请求。
你决定在每个人的视野范围内提供足够数量的时钟。如果团队成员的视野内至少有一个时钟(无论时钟的朝向如何),他们就会感到满意。更准确地说,视野是指从他们座位的朝向开始,向左 45 度到向右 45 度(包含边界)的范围。为了尽可能少买时钟,你需要编写一个程序来计算满足所有人需求所需的最少时钟数量。
办公室是一个矩形房间,沿南北和东西方向对齐。由于墙壁足够高,你可以把时钟挂在门上方,并且可以假设一个人的视线不会被其他成员或家具遮挡。你还可以假设每个时钟都是一个点(大小为零),因此你甚至可以将时钟挂在房间的角落。
例如,假设有两名成员。如果他们面对面坐着,位置如图 D.1(A) 所示,你需要提供两个时钟,因为他们看到的墙壁区域是不同的。如果他们的座位安排如图 D.1(B) 所示,他们的视野在墙上有一个公共点。因此,你可以通过在这一点挂一个时钟来满足他们的需求。在图 D.1(C) 中,他们的视野有一个公共的墙壁区域。你可以通过在该区域的任何位置挂一个时钟来满足他们的需求。图 D.1 中的安排 (A)、(B) 和 (C) 分别对应样例输入 1、2 和 3。
图 D.1. 座位和时钟的安排。灰色区域表示视野。
输入格式
输入包含一组测试用例,格式如下:
$n \ w \ d$ $x_1 \ y_1 \ f_1$ $.$ $.$ $.$ $x_n \ y_n \ f_n$
测试用例中的所有数字均为整数。第一行包含团队成员人数 $n$ ($1 \le n \le 1,000$) 以及办公室房间的尺寸 $w$ 和 $d$ ($2 \le w, d \le 100,000$)。办公室的宽度 $w$ 为东西向,深度 $d$ 为南北向。接下来的 $n$ 行中的每一行表示一名团队成员座位的坐标和朝向。每名成员的座位位于不同的位置 $(x_i, y_i)$,面向方向 $f_i$(其中 $i = 1, \dots, n$)。这里 $1 \le x_i \le w - 1$,$1 \le y_i \le d - 1$,且 $f_i$ 为 N、E、W、S 中的一个,分别代表北、东、西、南。位置 $(x, y)$ 表示距离西墙 $x$ 且距离南墙 $y$。
输出格式
输出所需的最少时钟数量。
样例
样例输入 1
2 10 6 4 4 E 6 4 W
样例输出 1
2
样例输入 2
2 10 6 2 4 E 6 4 W
样例输出 2
1
样例输入 3
2 10 6 3 2 S 6 4 W
样例输出 3
1
样例输入 4
6 10 6 1 5 N 7 1 N 8 2 E 9 1 S 4 4 S 3 3 W
样例输出 4
3
样例输入 5
4 10 6 4 3 W 2 4 N 4 4 W 3 3 S
样例输出 5
2
样例输入 6
4 100000 40000 25000 25000 S 20000 30000 S 75000 25000 S 80000 30000 S
样例输出 6
1