#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int rows, cols;
const int MAXSIZE = 12;
int start;
char road[MAXSIZE][MAXSIZE];
int visit[MAXSIZE][MAXSIZE];
int path[MAXSIZE][MAXSIZE];
int main(){
// freopen("../in.txt", "r", stdin);
while (cin>>rows>>cols>>start&&rows){
memset(road, -1, sizeof(road));
memset(visit, 0, sizeof(visit));
for (int i = 1; i <=rows ; ++i) {
for (int j = 1; j <=cols ; ++j) {
char temp;
cin>>temp;
road[i][j] = temp;
}
}
//输入结束,开始模拟
pair<int ,int > point = make_pair(1, start);
int step1 = 0;
bool flag = false;
while (true) {
if (visit[point.first][point.second]) {
cout<<path[point.first][point.second]
<<" step(s) before a loop of "<<step1-path[point.first][point.second]<<" step(s)"<<endl;
break;
}
int ins = road[point.first][point.second];
visit[point.first][point.second] = 1;
path[point.first][point.second] = step1;
step1++;
switch (ins) {
case 'S':
point.first++;
break;
case 'N':
point.first--;
break;
case 'W':
point.second--;
break;
case 'E':
point.second++;
break;
default:
step1--;
flag = true;
break;
}
if (flag) {
cout<<step1<<" step(s) to exit"<<endl;
break;
}
}
}
}
02-08
357

10-08
309
