1893 H语言


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 32M

Problem types
Allowed languages
C, C++, Java, Python

Description

Herbert先生发明了H语言,通过编程指令控制机器人走路。机器人执行指令走路时,基于平面坐标和运动方向。H语言包含语句和过程。语句只有S,R,L这3种,分别表示机器人直走,右转,左转;过程无返回值,故不能像C++那样称为函数。然而过程可以有参数,可以递归,这些概念都对应C++语言。

S语句表示机器人在当前方向上坐标向前移动一个单位。例如,机器人当前坐标(1,1),当前方向向北↑,则执行S语句后,机器人移动到(1,2),当前方向向北保持不变。

R语句表示机器人的运动方向向右转90度。例如,机器人当前坐标(1,1),当前方向向北,则执行R语句后,机器人的运动方向改为向东→,当前坐标不变。

L语句表示机器人的运动方向向左转90度。例如,机器人当前坐标(1,1),当前方向向北,则执行L语句后,机器人的运动方向改为向西←,当前坐标不变。

今定义H语言的递归过程fun(int a,int b)为:Sfun(a-b,b)Rfun(b-a,a)表示先执行语句S,再执行递归过程fun(a-b,b),再执行语句R,最后执行递归过程fun(b-a, a)。过程fun将在参数a或b出现0或负数时终止。对于执行过程fun(2,3):

即执行:S->fun(-1,3)->R->fun(1,2)

即执行:S->R->S->fun(-1,2)->R->fun(1,1)

即执行:S->R->S->R->S->fun(0,1)->R->fun(0,1)

即执行:S->R->S->R->S->R

对初始位于(0,0)向北方向的机器人,执行fun(2,3)后,将位于(1,0)向西方向。

你的任务是,对初始位于(0,0)向北方向的机器人,计算执行过程fun后所到达的方位。

Input

第一行一个整数n(n<1000)描述参数的组数。后面接下去有n组参数。每组参数有a,b(0≤a,b≤10000)两个整数。

Output

对于每组参数,输出一行机器人在执行fun(a,b)后所到达的坐标点和运动方向。它们之间都隔一个空格。运动方向的东、南、西、北分别表示为E,S,W,N。

Sample

Input

2
1 2
2 3

Output

1 1 S
1 0 W

Comments

There are no comments at the moment.