#U1516JS3. Build Gates
Build Gates
农夫约翰决定在他的农场的一部分周围建造一个新的栅栏,但他一直分心,最终把栅栏建造成一个比他预期的要奇怪得多的形状!具体来说,FJ 从位置 (0,0) 开始,走了 N 步,每移动一个单位的距离,向北、向南、向东或向西。他每走一步,就在身后筑起一道栅栏。例如,如果他的第一步是向北,他添加一段从 (0,0) 到 (0,1) 的栅栏。FJ 可能会多次重新访问点,甚至可能多次铺设同一段围栏。如果他的路径穿过他已经建造的栅栏,他的栅栏甚至可能会越过自己。
不用说,FJ在完成围栏后对结果感到相当沮丧。特别是,他注意到他现在可能已经将农场的某些区域与其他区域隔开,这样人们就不能再从一个区域走到另一个区域而不穿过栅栏。FJ 想在他的栅栏上添加门来解决这个问题。可以在他建造的任何单位长度的栅栏段上添加一个门,允许该段两侧之间的通道。
请确定 FJ 需要建造的最小门数,以便农场的每个区域都可以再次从其他区域到达。
输入格式(文件 gates.in):
输入的第一行包含 N (1≤N≤1000)。下一行包含一个长度为 N 的字符串,描述 FJ 的路径。每个字符是 N(北)、E(东)、S(南)或 W(西)。
输出格式(文件 gates.out):
写出一个整数,给出 FJ 需要建立的最小门数,以恢复与他农场所有区域的完全连接。请注意,如果农场一开始就连接,则答案可能为零。
SAMPLE INPUT:
14
NNNESWWWSSEEEE
SAMPLE OUTPUT:
2