Description
农夫约翰在管理农场的各个方面都很可靠,除了一点:他不擅长及时或合乎逻辑地割草。
该农场是一个由方形单元组成的大型二维网格。FJ在时间t=0时在其中一个单元中开始割草,它最初是唯一割草的单元。FJ的剩余割草模式由N个语句描述。例如,如果第一个语句是“W 10”,那么对于时间t=1到t=10(即接下来的10个时间单位),FJ将向其西部移动一个单元,沿途割草。在完成这一步骤后,他将在时间t=10时在他西边的10个单元位置结束,并将沿途的每个单元的草割掉。
FJ的进步如此之慢,以至于在他完成所有割草之前,他割草的一些草可能会长回来。在时间t被切割的任何草段将在时间t+x重新出现。
FJ的割草模式可能会让他多次重访同一间牢房,但他说,他从未遇到过一间已经割草的牢房。也就是说,每次他访问一个单元,他最近访问同一个单元的时间必须至少提前x个单位,这样草才能重新长出来。
请确定x的最大可能值,以确保FJ的体验是正确的。
Input
第一行输入包含N(1≤N≤100). 剩下的N行中的每一行都包含一条语句,其形式为'D S',其中D是一个描述方向的字符(N=北,E=东,S=南,W=西),S是在该方向上走的步数(1≤S≤10).
Output
请确定x的最大值,以便FJ不会踩到割过草的单元格。如果FJ从未多次访问任何单元格,请输出-1。
6
N 10
E 2
S 3
W 4
S 5
E 8
HINT
在本例中,FJ在时间17踩到了他之前在时间7踩到的单元格;因此,x的最大值必须是10,否则他第一次割过的草还不会长回来。他也在时间26踏上了他在时间2访问过的一个单元格;因此x最多也必须是24。由于这两个约束中的第一个更小,我们看到x最多可以是10。