The polar bears are going fishing. They plan to sail from (*s*<sub class="lower-index">*x*</sub>, *s*<sub class="lower-index">*y*</sub>) to (*e*<sub class="lower-index">*x*</sub>, *e*<sub class="lower-index">*y*</sub>). However, the boat can only sail by wind. At each second, the wind blows in one of these directions: east, south, west or north. Assume the boat is currently at (*x*, *y*).
 -  If the wind blows to the east, the boat will move to (*x* + 1, *y*). -  If the wind blows to the south, the boat will move to (*x*, *y* - 1). -  If the wind blows to the west, the boat will move to (*x* - 1, *y*). -  If the wind blows to the north, the boat will move to (*x*, *y* + 1). 
Alternatively, they can hold the boat by the anchor. In this case, the boat stays at (*x*, *y*). Given the wind direction for *t* seconds, what is the earliest time they sail to (*e*<sub class="lower-index">*x*</sub>, *e*<sub class="lower-index">*y*</sub>)?
The first line contains five integers *t*, *s*<sub class="lower-index">*x*</sub>, *s*<sub class="lower-index">*y*</sub>, *e*<sub class="lower-index">*x*</sub>, *e*<sub class="lower-index">*y*</sub> (1 ≤ *t* ≤ 10<sup class="upper-index">5</sup>,  - 10<sup class="upper-index">9</sup> ≤ *s*<sub class="lower-index">*x*</sub>, *s*<sub class="lower-index">*y*</sub>, *e*<sub class="lower-index">*x*</sub>, *e*<sub class="lower-index">*y*</sub> ≤ 10<sup class="upper-index">9</sup>). The starting location and the ending location will be different.

The second line contains *t* characters, the *i*-th character is the wind blowing direction at the *i*-th second. It will be one of the four possibilities: "E" (east), "S" (south), "W" (west) and "N" (north).
def move(ax, ay, aidx, ex, ey, memo, wind,directions):
    if (aidx >= len(wind)):
        return len(wind) 
    if (ax == ex and ay == ey):
        return aidx
    if ((ax, ay, aidx) in memo):
        return memo[(ax, ay, aidx)]
    actual_move = directions[wind[aidx]]
    pass_ans = move(ax, ay, aidx+1, ex, ey, memo, wind,directions)
    move_ans = move(ax+actual_move[0], ay+actual_move[1], aidx+1, ex, ey, memo, wind,directions)
    memo[(ax,ay,aidx)] = min(pass_ans, move_ans)
    return memo[(ax,ay,aidx)]

def solve(case):
    t, sx, sy, ex, ey = list(map(int, input().split()))
    wind = input()
    directions = dict()
    directions['E'] = (1,0)
    directions['S'] = (0,-1)
    directions['W'] = (-1,0)
    directions['N'] = (0,1)
    memo = dict()
    ans = move(sx, sy, 0, ex, ey, memo, wind, directions)
    if (ans >=len(wind)):
        print(-1)
    else:
        print(ans)

def main():
    solve(0)


main()

 		 		 	 				 		   	   		 	  	