/*
* 1035_3.cpp
*
* Created on: 2013年8月17日
* Author: Administrator
*/
#include <iostream>
using namespace std;
char map[11][11];
int num[11][11];
int n,m,k,t,loop;
bool overmap(int x , int y){
if( x < 1 || x > n || y < 1 || y > m){
return true;
}
return false;
}
void dfs(int x , int y){
if(overmap(x,y) || loop > 0){
if(loop > 0){
printf("%d step(s) before a loop of %d step(s)\n",t - loop , loop);
}else{
printf("%d step(s) to exit\n",t);
}
return ;
}
if(num[x][y] == 0){
num[x][y] = ++t;
}else{
loop = t - num[x][y] + 1;
}
switch(map[x][y]){
case 'N':--x;dfs(x,y);++x;break;
case 'S':++x;dfs(x,y);--x;break;
case 'W':--y;dfs(x,y);++x;break;
case 'E':++y;dfs(x,y);--y;break;
}
}
int main(){
while(scanf("%d %d %d",&n,&m,&k)!=EOF,n||m){
getchar();
int i,j;
t = 0;
loop = 0;
memset(num,0,sizeof(num));
memset(map,0,sizeof(map));
for(i = 1; i <= n ; ++i){
for( j = 1 ; j <= m ;++j){
scanf("%c",&map[i][j]);
}
getchar();
}
dfs(1,k);
}
}