#include <bits/stdc++.h>
using namespace std;
int b[505][505],p[505][505],p2[505][505];
int dC[]={0,1,0,-1};
int dR[]={-1,0,1,0};
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int R,C,M;
cin>>R>>C>>M;
for(int r=0; r<R; r++){
string s; cin>>s;
for(int c=0; c<C; c++){
if(s[c]=='#') b[r][c]=1;
}
}
for(int r=0; r<R; r++){
for(int c=0; c<C; c++){
p[r][c]=1-b[r][c];
}
}
string s; cin>>s;
for(int m=0; m<M; m++){
char c=s[m];
int d;
if(c=='N') d=0;
if(c=='E') d=1;
if(c=='S') d=2;
if(c=='W') d=3;
if(c=='?') d=4;
for(int r=0; r<R; r++){
for(int c=0; c<C; c++){
if(p[r][c]==0) continue;
if(d==4){
for(int dd=0; dd<4; dd++){
int nr=r+dR[dd], nc=c+dC[dd];
if(nr<0 || nr>=R || nc<0 || nc>=C) continue;
if(b[nr][nc]) continue;
p2[nr][nc]=1;
}
continue;
}
int nr=r+dR[d], nc=c+dC[d];
if(nr<0 || nr>=R || nc<0 || nc>=C) continue;
if(b[nr][nc]) continue;
p2[nr][nc]=1;
}
}
for(int r=0; r<R; r++){
for(int c=0; c<C; c++){
p[r][c]=p2[r][c];
p2[r][c]=0;
}
}
}
int rez=0;
for(int r=0; r<R; r++){
for(int c=0; c<C; c++){
rez+=p[r][c];
}
}
cout<<rez;
return 0;
}