#include <iostream>
#include <set>
#include <utility>
#include <iomanip>
using namespace std;
bool isPathCrossing(string s) {
set <pair <int, int>> st;
int x = 0, y = 0;
st.insert(make_pair(x,y));
for(int i = 0; i < s.size(); i++) {
if(s[i] == 'N') y++;
else if(s[i] == 'W') x--;
else if(s[i] == 'S') y--;
else x++;
pair <int, int> pr = make_pair(x, y);
if(st.find(pr) != st.end()) return true;
st.insert(pr);
}
return false;
}
int main() {
cout << boolalpha;
cout << isPathCrossing("NES") << endl;
cout << isPathCrossing("NESWW") << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPGlvbWFuaXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGlzUGF0aENyb3NzaW5nKHN0cmluZyBzKSB7CiAgICBzZXQgPHBhaXIgPGludCwgaW50Pj4gc3Q7CiAgICBpbnQgeCA9IDAsIHkgPSAwOwogICAgc3QuaW5zZXJ0KG1ha2VfcGFpcih4LHkpKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgaWYoc1tpXSA9PSAnTicpIHkrKzsKICAgICAgICBlbHNlIGlmKHNbaV0gPT0gJ1cnKSB4LS07CiAgICAgICAgZWxzZSBpZihzW2ldID09ICdTJykgeS0tOwogICAgICAgIGVsc2UgeCsrOwogICAgICAgIHBhaXIgPGludCwgaW50PiBwciA9IG1ha2VfcGFpcih4LCB5KTsKICAgICAgICBpZihzdC5maW5kKHByKSAhPSBzdC5lbmQoKSkgcmV0dXJuIHRydWU7CiAgICAgICAgc3QuaW5zZXJ0KHByKTsKICAgIH0gCiAgICByZXR1cm4gZmFsc2U7Cn0gIAoKaW50IG1haW4oKSB7Cgljb3V0IDw8IGJvb2xhbHBoYTsKCWNvdXQgPDwgaXNQYXRoQ3Jvc3NpbmcoIk5FUyIpIDw8IGVuZGw7Cgljb3V0IDw8IGlzUGF0aENyb3NzaW5nKCJORVNXVyIpIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==