#include <iostream>
#include <queue>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;
#define debug(x) cout<<#x<<": "<<(x)<<endl;
#pragma warning(disable:4996)
int dx[4] = { -1,0, 1, 0};
int dy[4] = { 0, 1, 0,-1};
bool help(int n, int m, int col) {
//N 0 E 1 S 2 W 3
vector<vector<int>> a(n,vector<int>(m,-1));
vector<vector<int>> v(n,vector<int>(m,-1));
for (size_t i = 0; i < n; ++i) {
for (size_t j = 0; j < m; ++j) {
char c;
cin >> c;
switch (c)
{
case 'N':a[i][j] = 0; break;
case 'E':a[i][j] = 1; break;
case 'S':a[i][j] = 2; break;
case 'W':a[i][j] = 3; break;
default:
break;
}
}
}
int x = 0;
int y = col - 1;
int cnt = 0;
bool out = true;
while (x >= 0 && x < n && y >= 0 && y < m) {
int d = a[x][y];
if (v[x][y] >= 0) {
cout << v[x][y] << " step(s) before a loop of "<< cnt-v[x][y] << " step(s)" << endl;
out = false;
break;
}
v[x][y] = cnt;
x += dx[d], y += dy[d];
cnt++;
}
if (out) {
cout << cnt << " step(s) to exit" << endl;
}
return true;
}
int main()
{
int n, m, col;
//freopen("../in1.txt","r",stdin);
while (cin >> n >> m >> col) {
if (n == 0 && m==0 && col==0) {
break;
}
help(n,m,col);
}
return 0;
}

还没有评论,来说两句吧...