/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Orientation o = Orientation.WEST;
System.
out.
println(o.
turnLeft().
turnRight().
turnRight().
turnRight()); // EAST System.
out.
println(o.
turnRight().
turnRight()); // EAST System.
out.
println(o.
turnLeft()); // SOUTH }
static enum Orientation {
NORTH, EAST, SOUTH, WEST;
public Orientation turnRight() {
Orientation[] values = values();
int ordinal = this.ordinal();
if (ordinal == values.length - 1) {
return NORTH;
}
return values[ordinal+ 1];
}
public Orientation turnLeft() {
Orientation[] values = values();
int ordinal = this.ordinal();
if (ordinal == 1) {
return WEST;
}
return values[ordinal - 1];
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCU9yaWVudGF0aW9uIG8gPSBPcmllbnRhdGlvbi5XRVNUOwoJCVN5c3RlbS5vdXQucHJpbnRsbihvLnR1cm5MZWZ0KCkudHVyblJpZ2h0KCkudHVyblJpZ2h0KCkudHVyblJpZ2h0KCkpOyAvLyBFQVNUCgkJU3lzdGVtLm91dC5wcmludGxuKG8udHVyblJpZ2h0KCkudHVyblJpZ2h0KCkpOyAvLyBFQVNUCgkJU3lzdGVtLm91dC5wcmludGxuKG8udHVybkxlZnQoKSk7IC8vIFNPVVRICgl9CgkKICAgIHN0YXRpYyBlbnVtIE9yaWVudGF0aW9uIHsKICAgICAgICBOT1JUSCwgRUFTVCwgU09VVEgsIFdFU1Q7CiAgICAKICAgICAgICBwdWJsaWMgT3JpZW50YXRpb24gdHVyblJpZ2h0KCkgewogICAgICAgICAgICBPcmllbnRhdGlvbltdIHZhbHVlcyA9IHZhbHVlcygpOwogICAgICAgICAgICBpbnQgb3JkaW5hbCA9IHRoaXMub3JkaW5hbCgpOwogICAgICAgICAgICBpZiAob3JkaW5hbCA9PSB2YWx1ZXMubGVuZ3RoIC0gMSkgewogICAgICAgICAgICAgICAgcmV0dXJuIE5PUlRIOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB2YWx1ZXNbb3JkaW5hbCsgMV07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHB1YmxpYyBPcmllbnRhdGlvbiB0dXJuTGVmdCgpIHsKICAgICAgICAgICAgT3JpZW50YXRpb25bXSB2YWx1ZXMgPSB2YWx1ZXMoKTsKICAgICAgICAgICAgaW50IG9yZGluYWwgPSB0aGlzLm9yZGluYWwoKTsKICAgICAgICAgICAgaWYgKG9yZGluYWwgPT0gMSkgewogICAgICAgICAgICAgICAgcmV0dXJuIFdFU1Q7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHZhbHVlc1tvcmRpbmFsIC0gMV07CiAgICAgICAgfQogICAgfQp9