Shortcut
Time Limit: 5 Seconds Memory Limit: 32768 KB
Mirek has a favourite way from home to the university that he traverses every working day. The route consists of sections and each section is a straight segment 10 meters long. Each section is either a straight ahead extension of the previous section or it is perpendicular to the previous section. After traversing each section Mirek takes a small break to admire the beauty of the nature. During his walk he never visits the same place twice.
Yesterday Mirek stayed up long in the night at the party and today he got up late from bed. He knows that he will miss the first lecture unless he changes his usual route. He plans to make one shirtcut but he wants the shortcut to be as short as possible (well, we can tell you in secret that he doesn't want to be on time, he just wants to calm his conscience). The shortcut must be either a horizontal or vertical segment connecting two break points of Mirek's rout.
Please help Mirek find the shortest shortcut.
Task
Write a program that:
- reads Mirek's route,
- computes the shortest shortcut on the route,
- writes the result.
Input
The input consists of several test cases.
For each case, the first line contains one integer M (3 <= M <= 250 000) being the number of sections of
the route. The second line contains a sequence of M characters N, E, S or W with no spaces
in between. Each character is a description of one section of the route. Character N, E, S or W means
that Mirek walks 10 meters north, east, south or west respectively. You may assume that at least one
shortcut exists for the given route.
Output
For each test case, print in one line three integers l, b, e and a character d separated by single spaces. Integer l is the length of the shortest shortcut (measured in 10 m segments). Integers b and e are the numbers of break points where the shortcut begins and ends respectively (we number break points with consecutive integers from 0 from Mirek's home to M for the university). Character d is the direction of the shortcut. If more than one shortcut of the minimal length exists you should output the one that begins earliest on the route. If more than one shortcut of the minimal length begins at the same break point you should output the one that ends furthest on the route.
Sample Input
12 NNNENNWWWSSW
Sample Output
2 3 11 WSubmit
Source: Central Europe 2003