int t; char direc[100100]; int nneed,eneed,wneed,sneed;//每次都得初始化 int n,e,w,s;//每次都得初始化 void caculate



  • 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 (ex, ey)?


Input

The first line contains five integers t, sx, sy, ex, ey (1 ≤ t ≤ 105, - 109sx, sy, ex, ey ≤ 109). 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).


Output

If they can reach (ex, ey) within t seconds, print the earliest time they can achieve it. Otherwise, print "-1" (without quotes).



5 0 0 1 1 SESNW


output

4


input

10 5 3 3 6 NENSWESNEE


output

-1


Note

In the first sample, they can stay at seconds 1, 3, and move at seconds 2, 4.

In the second sample, they cannot sail to the destination.



    #include <stdio.h>

#include <stdlib.h>

#include <string.h>







int sx,sy,ex,ey;

int t;

char direc[100100];

int nneed,eneed,wneed,sneed;//每次都得初始化

int n,e,w,s;//每次都得初始化

void caculate()

{

nneed=0;eneed=0;sneed=0;wneed=0;

int tempx=ex-sx;

int tempy=ey-sy;

if(tempx>=0)

{

eneed=tempx;

}

else

{

   wneed=-tempx;

}

if(tempy>=0)

{

nneed=tempy;

}

else

{

sneed=-tempy;

}



}

int isposi(int a)

{

if(a<0)

return 0;

else return a;

}

int compare()

{

if(isposi(nneed-n)==0&&isposi(sneed-s)==0&&isposi(eneed-e)==0&&isposi(wneed-w)==0)

return 1;

else return 0;

}

void solve()

{

n=0;s=0;e=0;w=0;

scanf("%s",direc);

for(int i=0;i<t;i++)

{

switch(direc[i])

{

case 'N':

{

n++;

break;

}

case 'S':

{

s++;

break;

}

case 'E':

{

e++;

break;

}

case 'W':

{

w++;

break;

}

}

if(compare()==1)

{

printf("%d\n",i+1);

return;

}

}

printf("-1\n");

}

int main(int argc, char *argv[])

{

while(scanf("%d %d %d %d %d",&t,&sx,&sy,&ex,&ey)!=EOF)

{

caculate();//算计须要的n,e,s,w

solve();

}

return 0;

}