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).
t,sx,sy,ex,ey=list(map(int,input().split()))
directions=list(input())
x=ex-sx
y=ey-sy
sx_operation=[]
sy_operation=[]
for direction in directions:
    if direction=='E':
        sx_operation.append(1)
        sy_operation.append(0)
    if direction=='S':
        sx_operation.append(0)
        sy_operation.append(-1)
    if direction=='W':
        sx_operation.append(-1)
        sy_operation.append(0)
    if direction=='N':
        sx_operation.append(0)
        sy_operation.append(1)
count=0
if x>0 and y>0:
    if sx_operation.count(1)>=x and sy_operation.count(1)>=y:
        sx_index=[i for i in range(len(sx_operation)) if sx_operation[i]==1][:x]
        sy_index=[i for i in range(len(sy_operation)) if sy_operation[i]==1][:y]
        index=max(sx_index[-1],sy_index[-1])
        for i in range(index+1):
            if sx_operation!=-1 and sy_operation!=-1:
                count+=1
elif x>0 and y<0:
    if sx_operation.count(1)>=x and sy_operation.count(-1)>=abs(y):
        sx_index=[i for i in range(len(sx_operation)) if sx_operation[i]==1][:x]
        sy_index=[i for i in range(len(sy_operation)) if sy_operation[i]==-1][:y]
        index=max(sx_index[-1],sy_index[-1])
        for i in range(index+1):
            if sx_operation!=-1 and sy_operation!=1:
                count+=1
elif x<0 and y>0:
    if sx_operation.count(-1)>=abs(x) and sy_operation.count(1)>=y:
        sx_index=[i for i in range(len(sx_operation)) if sx_operation[i]==-1][:x]
        sy_index=[i for i in range(len(sy_operation)) if sy_operation[i]==1][:y]
        index=max(sx_index[-1],sy_index[-1])
        for i in range(index+1):
            if sx_operation!=1 and sy_operation!=-1:
                count+=1
else:
    if sx_operation.count(-1)>=abs(x) and sy_operation.count(-1)>=abs(y):
        sx_index=[i for i in range(len(sx_operation)) if sx_operation[i]==-1][:x]
        sy_index=[i for i in range(len(sy_operation)) if sy_operation[i]==-1][:y]
        index=max(sx_index[-1],sy_index[-1])
        for i in range(index+1):
            if sx_operation!=1 and sy_operation!=1:
                count+=1
if count==0:
    print(-1)
else:
    print(count)
   			  	  	    			  				 	 			