#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const char* dirs = "NESW";
const char* turns = "FLR";
const int dx[4] = {-1 , 0 , 1 , 0} , dy[4] = {0 , 1 , 0 , -1} , N = 11;
int sx , sy , x2 , y2 , ndir , r0 , c0;
int d[N][N][5];
bool edge[N][N][5][5];
string s;
char b;
struct node{
int x , y , dir;
node(){x = 0 , y = 0 , dir = 0;}
node(int x1 , int y1 , int dir1){
x = x1 , y = y1 , dir = dir1;
}
}fa[N][N][5];
int gett(char c){return strchr(turns , c) - turns;}
int getd(char c){return strchr(dirs , c) - dirs;}
node walk(const node &u , int turn)
{
int dir = u.dir;
if(turn == 1) dir = (dir + 3) % 4;
else if(turn == 2) dir = (dir + 1) % 4;
return node(u.x + dx[dir] , u.y + dy[dir] , dir);
}
bool exist(int x , int y){return 1 <= x && x <= N && y >= 1 && y <= N;}
void print_ans(node u)
{
vector<node> nodes;
for(;;){
nodes.push_back(u);
if(d[u.x][u.y][u.dir] == 0) break;
u = fa[u.x][u.y][u.dir];
}
nodes.push_back(node(r0 , c0 , ndir));
int cnt = 0;
for(int i = nodes.size() - 1;i >= 0;i --){
if(cnt %10 == 0 && cnt) printf(" ");
printf(" (%d,%d)" , nodes[i].x , nodes[i].y);
if(++ cnt % 10 == 0) printf("\n");
}
}
void bfs()
{
queue<node> q;
q.push(node(sx , sy , ndir));
d[sx][sy][ndir] = 0;
while(q.size()){
node u = q.front(); q.pop();
if(u.x == x2 && u.y == y2){
print_ans(u);
cout << endl;
return ;
}
for(int i = 0;i < 3;i ++){
if(edge[u.x][u.y][u.dir][i]){
node v = walk(u , i);
if(d[v.x][v.y][v.dir] < 0){
d[v.x][v.y][v.dir] = d[u.x][u.y][u.dir] + 1;
fa[v.x][v.y][v.dir] = u;
q.push(v);
}
}
}
}
cout << " No Solution Possible" << endl;
return ;
}
int main()
{
while(cin >> s){
if(s == "END"){
return 0;
}cout << s << endl;
memset(d , -1 , sizeof d);
memset(edge , 0 , sizeof edge);
cin >> sx >> sy >> b >> x2 >> y2;
r0 = sx , c0 = sy;
ndir = getd(b);
sx = sx + dx[ndir];
sy = sy + dy[ndir];
int r1 , c1;
while(scanf("%d" , &r1) && r1){
scanf("%d" , &c1);
char b[20];
while(cin >> b && b[0] != '*'){
for(int i = 1;i < strlen(b);i ++)
edge[r1][c1][getd(b[0])][gett(b[i])] = 1;
}
}
bfs();
}
return 0;
}
/*
SAMPLE
3 1 N 3 3
1 1 WL NR *
1 2 WLF NR ER *
1 3 NL ER *
2 1 SL WR NF *
2 2 SL WF ELF *
2 3 SFR EL *
0
NOSOLUTION
3 1 N 3 2
1 1 WL NR *
1 2 NL ER *
2 1 SL WR NFR *
2 2 SR EL *
0
MyMaze1
3 1 N 1 1
0
MyMaze2
3 1 N 3 1
0
MyMaze3
3 1 N 2 1
0
MyMaze4
2 2 W 3 2
1 1 NR *
1 2 ER *
2 1 WR *
2 2 SF *
0
MyMaze5
2 2 N 2 3
1 1 WL *
1 2 NL *
2 1 SF *
2 2 NR *
3 1 SL *
3 2 EL *
0
Circle
2 1 N 2 1
1 1 NR *
1 2 ER *
2 2 SF *
3 1 WR *
3 2 SR *
0
RobertAbbottAtlanta
4 2 N 4 3
1 1 NR WL *
1 2 NLR WF EFR *
1 3 EFR WFR NL *
1 4 ER NL *
2 1 SFL WL NFR *
2 2 EL SFLR WFRL NFL *
2 3 EFLR SF NF WFRL *
2 4 SR ELR NF *
3 1 WR SL *
3 2 EFL SLR WR NF *
3 3 EFL SLR WL *
3 4 EL SR *
0
END
*/