#include <iostream>
#include<string.h>
#include<sstream>
#include<algorithm>
#include <math.h>
#include <set>
#include <map>
#include <vector>
#include <set>
#include <queue>
#include<stack>
#include<iomanip>
#define ll long long
using namespace std;
ll a[20005];
ll bs = 10000000;
//北东西南
int qiubs(ll x,ll y,ll x1, ll y1,ll i,ll z,ll n)
{
//找到路径
if(x==x1&&y==y1)
{
// cout<<x<<y<<i<<endl;
if(z<bs)
{
bs = z;
}
return 0;
}
//整个数组遍历完了
if(i==n+1)
{
return 0;
}
// i=1;
//beifen
if(a[i]==1)
{
//走
qiubs(x,y+1,x1,y1,i+1,z+1,n);
//不走
qiubs(x,y,x1,y1,i+1,z,n);
}
if(a[i]==2)
{
//走
qiubs(x+1,y,x1,y1,i+1,z+1,n);
//不走
qiubs(x,y,x1,y1,i+1,z,n);
}
if(a[i]==3)
{
//走
qiubs(x-1,y,x1,y1,i+1,z+1,n);
//不走
qiubs(x,y,x1,y1,i+1,z,n);
}
if(a[i]==4)
{
//走
qiubs(x,y-1,x1,y1,i+1,z+1,n);
//不走
qiubs(x,y,x1,y1,i+1,z,n);
}
return 1;
}
int main()
{
ll x,y;
ll x1,y1;
cin>>x>>y>>x1>>y1;
ll n;
cin>>n;
for(ll i=1; i<=n; i++)
{
char c ;
cin>>c;
if(c=='N')
{
a[i]=1;
}
else if(c=='E')
{
a[i]=2;
}
else if(c=='W')
{
a[i]=3;
}
else
{
a[i]=4;
}
}
qiubs(x,y,x1,y1,1,0,n);
if(bs==10000000)
{
cout<<-1;
}
else
{
cout<<bs;
}
return 0;
}