#include <bits/stdc++.h>
using namespace std;
int const N=505;
int g[N][N];
int r, c, m;
string s;
set<pair<int,int>> rez;
map<pair<pair<int,int>, int>, int> was;
void f(int x, int y, int si=0)
{
if(!g[x][y])return;
if( was[{{x, y}, si}]==1)return;
was[{{x, y}, si}]=1;
if(si==m)
{
rez.insert({x, y});
return;
}
if(s[si]=='W' || s[si]=='?')
{
if(y>0)
{
f(x, y-1, si+1);
}
}
if(s[si]=='N' || s[si]=='?')
{
if(x>0)
{
f(x-1, y, si+1);
}
}
if(s[si]=='S' || s[si]=='?')
{
if(x<r-1)
{
f(x+1, y, si+1);
}
}
if(s[si]=='E' || s[si]=='?')
{
if(y<c-1)
{
f(x, y+1, si+1);
}
}
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> r >> c >> m;
for(int i =0; i < r; i++)
{
for(int j = 0; j < c; j++)
{
char a; cin >> a;
if(a=='.') g[i][j]=1;
}
}
cin >> s;
for(int i = 0; i <r; i++)
{
for(int j= 0; j < c; j++)
{
f(i, j);
}
}
cout << rez.size() << "\n";
return 0;
}