1 #include <iostream>
   2 #include <sstream>
   3 #include <string>
   4 #include <algorithm>
   5 #include <vector>
   6 using namespace std;
   7 
   8 #define GI ({int _t; scanf("%d", &_t); _t;})
   9 #define FOR(i, a, b) for (int i=a; i<b; i++)
  10 #define REP(i, a) FOR(i, 0, a)
  11 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();}
  12 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;}
  13 #define DBG(x) cout << #x << "::" << x << endl;
  14 #define DBGV(_v) { REP(_i, _v.size()) { cout << _v[_i] << "\t";} cout << endl;}
  15 #define OK(x,y) (x >= 0 && y >= 0 && x <= X && y <= Y)
  16 #define sz size()
  17 typedef pair<int,int> PII;
  18 int X, Y;
  19 char turnLeft(char dir) {
  20 	switch (dir) {
  21 		case 'E': return 'N';
  22 		case 'N': return 'W';
  23 		case 'W': return 'S';
  24 		case 'S': return 'E';
  25 	}
  26 }
  27 
  28 char turnRight(char dir) {
  29 	switch (dir) {
  30 		case 'W': return 'N';
  31 		case 'N': return 'E';
  32 		case 'E': return 'S';
  33 		case 'S': return 'W';
  34 	}
  35 }
  36 
  37 PII moveForward(PII pos, char dir) {
  38 	int x = pos.first, y = pos.second;
  39 	if (dir == 'E') x++;
  40 	else if (dir == 'W') x--;
  41 	else if (dir == 'N') y++;
  42 	else if (dir == 'S') y--;
  43 	if (OK(x,y)) return PII(x,y);
  44 	else return PII(-1, -1);
  45 }
  46 
  47 int main() {
  48 	X = GI; Y = GI;
  49 	int x, y;
  50 	char dir;
  51 	bool board[51][51];
  52 	REP(i,51) REP(j, 51) board[i][j] = false;
  53 	while (cin >> x >> y >> dir) {
  54 		bool lost = false;
  55 		string seq;
  56 		cin >> seq;
  57 		REP(i, seq.sz) {
  58 			if (seq[i] == 'L') {
  59 				dir = turnLeft(dir);
  60 			}
  61 			else if (seq[i] == 'R') {
  62 				dir = turnRight(dir);
  63 			}
  64 			else if (seq[i] == 'F') {
  65 				PII newpos = moveForward(PII(x,y), dir);
  66 				if (newpos.first == -1 && newpos.second == -1 && board[x][y] == false) {
  67 					printf("%d %d %c LOST\n", x, y, dir);
  68 					board[x][y] = true;
  69 					lost = true;
  70 					break;
  71 				}
  72 				else if (newpos.first != -1) {
  73 					x = newpos.first;
  74 					y = newpos.second;
  75 				}
  76 			}
  77 			//printf("##%d %d %c\n", x, y, dir);
  78 		}
  79 		if (!lost)
  80 			printf("%d %d %c\n", x, y, dir);
  81 	}
  82 	return 0;
  83 }