#include <iostream>
#include <map>
#include <cstring>
using namespace std;
char da[20][20];
int dis[20][20];
map<int,int> dx;
map<int,int> dy;
int n,m;
int lo;//循环
int qi;//循环前链
int ex;//离开
void dfs(int x,int y)
{
//cout<<(char)da[x][y]<<endl;
int t=da[x][y];
int tx=x+dx[t];
int ty=y+dy[t];
//cout<<tx<<" "<<ty<<endl;
if(tx>=0 && tx<n && ty>=0 && ty<m)
{
if(dis[tx][ty]==-1)
{
dis[tx][ty]=dis[x][y]+1;
dfs(tx,ty);
}else
{
qi=dis[tx][ty]-1;
lo=dis[x][y]-dis[tx][ty]+1;
return;
}
}else
{
ex=dis[x][y];
return;
}
}
int main()
{
dx['N']=-1;
dy['N']=0;
dx['S']=1;
dy['S']=0;
dx['W']=0;
dy['W']=-1;
dx['E']=0;
dy['E']=1;
while(1)
{
memset(dis,-1,sizeof(dis));
int ks;
cin>>n>>m>>ks;
if(n==0 && m==0 && ks==0)
{
break;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>da[i][j];
}
}
/*
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<da[i][j]<<" ";
}
cout<<endl;
}*/
int sx=(ks-1)/m;
int sy=(ks-1)%m;
dis[sx][sy]=1;
lo=-1;
ex=-1;
qi=-1;
dfs(sx,sy);
if(ex==-1)
{
cout<<qi<<" step(s) before a loop of "<<lo<<" step(s)"<<endl;
}else
{
cout<<ex<<" step(s) to exit"<<endl;
}
}
return 0;
}