Let's move the Mars rover! Summary

The task is to navigate the Mars rover and tell its final coordinates and direction.

Input:

First input:

First your program must take the input which will be in the following format:

[X-Coordinate],[Y-Coordinate],[Direction]


The direction must be: N or S or E or W (Starting letters of North, South, West, East)

Example:  10,20,N ( x = 10, y = 20, direction = N(North))

Second input:

The second input consists of series of R, L, M for right, left and move respectively.

For R and L (right and left) the direction of rover must change accordingly.

For M the rover must move 1 unit ahead in the direction which it was before moving.

Rules for calculating coordinates:

N = Y + 1
E = X + 1
S = Y - 1
W = X - 1


Output:

The final coordinates and the current direction of the rover.

Example:

Enter initial data:      1,2,N

Enter the instructions:  MRMLM

Output:                  2,4,N


The coordinates can be any integer and can be negative.

All the standard loopholes aren't allowed. If providing demo on sites like http://ideone.com etc. is possible, then please do so, so that I can verify :)

This is a popularity contest so be creative!

Following others' advice, I decide to make this a code-golf.
Ruby ≥ 2.0, 101

E,N,W,S=*0..3
x,y,i=eval"a="+gets
gets.bytes{|c|x+=c%2*1i**i=i+1-c&amp;3}
$&gt;&lt;&lt;[(x+y.i).rect,"NWSE"[i]]*?,


This solution can be tested here: https://ideone.com/C4PLdE

Note that the solution linked on ideone is one character longer (1.i instead of 1i in line 3). The reason for this is that ideone only supports Ruby 1.9, which doesn't allow the short-hand syntax for complex literals.