#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
int** array_init(const int&, const int&);
void change_orientation(char&, const char&);
bool go_forward(int **, const int&, const int&, int&, int&, char&, bool&);
void show_coordinate(int&, int&, char&, bool&);
int main()
{
int range_x, range_y; // upper-right coordinates of the rectangular world
int x, y; // initial coordinate of robot
char o; // initail orientation of robot
string instr; // instruction
int **scent = 0; // robot drop coordinates
cin >> range_x >> range_y;
scent = array_init(range_x, range_y);
while( cin >> x >> y >> o >> instr )
{
bool isdrop = false;
for(string::size_type i = 0; i != instr.size(); ++i)
{
if( instr[i] == 'F' )
{
if( go_forward(scent, range_x, range_y, x, y, o, isdrop) == false )
break;
}
else
change_orientation(o, instr[i]);
}
show_coordinate(x, y, o, isdrop);
}
}
int** array_init(const int &x, const int &y)
{
int **a = new int*[x];
for(int i = 0; i <= x; ++i)
a[i] = new int[y];
for(int i = 0; i <= x; ++i)
for(int j = 0; j <= y; ++j)
a[i][j] = 0;
return a;
}
void change_orientation(char &o, const char &instr)
{
char orientation[4] = {'N', 'E', 'S', 'W'};
for(int i = 0; i != 4; ++i)
{
if( orientation[i] == o)
{
if( instr == 'R' )
o = orientation[ (i+1)%4 ];
else
o = orientation[ (i+3)%4 ];
break;
}
}
}
bool go_forward(int **a, const int &range_x, const int &range_y, int &x, int &y, char &o, bool &isdrop)
{
switch(o)
{
case 'N':
if( y+1 > range_y ) // 超出範圍?
{
if( a[x][y] == 0 ) // 標記?
{
a[x][y] = 1;
isdrop = true;
return false;
}
else // 有標記 -> nop
return true;
}
else
{
y++;
return true;
}
case 'E':
if( x+1 > range_x )
{
if( a[x][y] == 0 )
{
a[x][y] = 1;
isdrop = true;
return false;
}
else
return true;
}
else
{
x++;
return true;
}
case 'S':
if( y-1 < 0 )
{
if( a[x][y] == 0 )
{
a[x][y] = 1;
isdrop = true;
return false;
}
else
return true;
}
else
{
y--;
return true;
}
case 'W':
if( x-1 < 0 )
{
if( a[x][y] == 0 )
{
a[x][y] = 1;
isdrop = true;
return false;
}
else
return true;
}
else
{
x--;
return true;
}
default:
return false;
}
}
void show_coordinate(int &x, int &y, char &o, bool &isdrop)
{
cout << x << ' ' << y << ' ' << o;
if( isdrop )
cout << " LOST";
cout << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3RkaW8uaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCoqIGFycmF5X2luaXQoY29uc3QgaW50JiwgY29uc3QgaW50Jik7CnZvaWQgY2hhbmdlX29yaWVudGF0aW9uKGNoYXImLCBjb25zdCBjaGFyJik7CmJvb2wgZ29fZm9yd2FyZChpbnQgKiosIGNvbnN0IGludCYsIGNvbnN0IGludCYsIGludCYsIGludCYsIGNoYXImLCBib29sJik7CnZvaWQgc2hvd19jb29yZGluYXRlKGludCYsIGludCYsIGNoYXImLCBib29sJik7CgppbnQgbWFpbigpCnsKCWludCByYW5nZV94LCByYW5nZV95OwkvLwl1cHBlci1yaWdodCBjb29yZGluYXRlcyBvZiB0aGUgcmVjdGFuZ3VsYXIgd29ybGQKCWludCB4LCB5OwkJCQkvLwlpbml0aWFsIGNvb3JkaW5hdGUgb2Ygcm9ib3QgCgljaGFyIG87CQkJCQkvLwlpbml0YWlsIG9yaWVudGF0aW9uIG9mIHJvYm90CglzdHJpbmcgaW5zdHI7CQkJLy8JaW5zdHJ1Y3Rpb24KCWludCAqKnNjZW50ID0gMDsJCS8vCXJvYm90IGRyb3AgY29vcmRpbmF0ZXMKCgljaW4gPj4gcmFuZ2VfeCA+PiByYW5nZV95OwoJc2NlbnQgPSBhcnJheV9pbml0KHJhbmdlX3gsIHJhbmdlX3kpOwoKCXdoaWxlKCBjaW4gPj4geCA+PiB5ID4+IG8gPj4gaW5zdHIgKQoJewoJCWJvb2wgaXNkcm9wID0gZmFsc2U7CgkJZm9yKHN0cmluZzo6c2l6ZV90eXBlIGkgPSAwOyBpICE9IGluc3RyLnNpemUoKTsgKytpKQoJCXsKCQkJaWYoIGluc3RyW2ldID09ICdGJyApCgkJCXsKCQkJCWlmKCBnb19mb3J3YXJkKHNjZW50LCByYW5nZV94LCByYW5nZV95LCB4LCB5LCBvLCBpc2Ryb3ApID09IGZhbHNlICkKCQkJCQlicmVhazsKCQkJfQoJCQllbHNlCgkJCQljaGFuZ2Vfb3JpZW50YXRpb24obywgaW5zdHJbaV0pOwoJCX0KCQlzaG93X2Nvb3JkaW5hdGUoeCwgeSwgbywgaXNkcm9wKTsKCX0KfQoKaW50KiogYXJyYXlfaW5pdChjb25zdCBpbnQgJngsIGNvbnN0IGludCAmeSkKewoJaW50ICoqYSA9IG5ldyBpbnQqW3hdOwoJZm9yKGludCBpID0gMDsgaSA8PSB4OyArK2kpCgkJYVtpXSA9IG5ldyBpbnRbeV07CgkKCWZvcihpbnQgaSA9IDA7IGkgPD0geDsgKytpKQoJCWZvcihpbnQgaiA9IDA7IGogPD0geTsgKytqKQoJCQlhW2ldW2pdID0gMDsKCXJldHVybiBhOwp9CnZvaWQgY2hhbmdlX29yaWVudGF0aW9uKGNoYXIgJm8sIGNvbnN0IGNoYXIgJmluc3RyKQp7CgljaGFyIG9yaWVudGF0aW9uWzRdID0geydOJywgJ0UnLCAnUycsICdXJ307CgoJZm9yKGludCBpID0gMDsgaSAhPSA0OyArK2kpCgl7CgkJaWYoIG9yaWVudGF0aW9uW2ldID09IG8pCgkJewoJCQlpZiggaW5zdHIgPT0gJ1InICkKCQkJCW8gPSBvcmllbnRhdGlvblsgKGkrMSklNCBdOwoJCQllbHNlCgkJCQlvID0gb3JpZW50YXRpb25bIChpKzMpJTQgXTsKCQkJYnJlYWs7CgkJfQoJfQp9CmJvb2wgZ29fZm9yd2FyZChpbnQgKiphLCBjb25zdCBpbnQgJnJhbmdlX3gsIGNvbnN0IGludCAmcmFuZ2VfeSwgaW50ICZ4LCBpbnQgJnksIGNoYXIgJm8sIGJvb2wgJmlzZHJvcCkKewoJc3dpdGNoKG8pCgl7CgljYXNlICdOJzoJCQoJCWlmKCB5KzEgPiByYW5nZV95ICkJCS8vCei2heWHuuevhOWcjT8KCQl7CQoJCQlpZiggYVt4XVt5XSA9PSAwICkJLy8J5qiZ6KiYPwoJCQl7CgkJCQlhW3hdW3ldID0gMTsKCQkJCWlzZHJvcCA9IHRydWU7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0JCQkKCQkJZWxzZQkJCQkvLwnmnInmqJnoqJggLT4gbm9wCgkJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZQoJCXsKCQkJeSsrOwoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgljYXNlICdFJzoKCQlpZiggeCsxID4gcmFuZ2VfeCApCgkJewoJCQlpZiggYVt4XVt5XSA9PSAwICkKCQkJewoJCQkJYVt4XVt5XSA9IDE7CgkJCQlpc2Ryb3AgPSB0cnVlOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJCWVsc2UKCQkJCXJldHVybiB0cnVlOwoJCX0KCQllbHNlCgkJewoJCQl4Kys7CgkJCXJldHVybiB0cnVlOwoJCX0KCWNhc2UgJ1MnOgoJCWlmKCB5LTEgPCAwICkKCQl7CgkJCWlmKCBhW3hdW3ldID09IDAgKQoJCQl7CgkJCQlhW3hdW3ldID0gMTsKCQkJCWlzZHJvcCA9IHRydWU7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkJZWxzZQoJCQkJcmV0dXJuIHRydWU7CgkJfQoJCWVsc2UKCQl7CgkJCXktLTsKCQkJcmV0dXJuIHRydWU7CgkJfQoJY2FzZSAnVyc6CgkJaWYoIHgtMSA8IDAgKQoJCXsKCQkJaWYoIGFbeF1beV0gPT0gMCApCgkJCXsKCQkJCWFbeF1beV0gPSAxOwoJCQkJaXNkcm9wID0gdHJ1ZTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQllbHNlCgkJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJZWxzZQoJCXsKCQkJeC0tOwoJCQlyZXR1cm4gdHJ1ZTsKCQl9CglkZWZhdWx0OgoJCXJldHVybiBmYWxzZTsKCX0JCn0Kdm9pZCBzaG93X2Nvb3JkaW5hdGUoaW50ICZ4LCBpbnQgJnksIGNoYXIgJm8sIGJvb2wgJmlzZHJvcCkKewoJY291dCA8PCB4IDw8ICcgJyA8PCB5IDw8ICcgJyA8PCBvOwoJaWYoIGlzZHJvcCApCgkJY291dCA8PCAiIExPU1QiOwoJY291dCA8PCBlbmRsOwp9