from sys import stdout
from collections import deque
from types import MappingProxyType
import io
import os
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
SIZE, EMPTY, VISITED, START, COLLISION, OFFSETS = 201, ".", "@", "#", "X", MappingProxyType(
dict(N=(0, 1), E=(1, 0), S=(0, -1), W=(-1, 0))
)
n = int(input())
while n:
n -= 1
path = input().decode().strip()
curr = [SIZE // 2, SIZE // 2]
matrix = [[EMPTY] * SIZE for i in range(SIZE)]
if path:
matrix[curr[1]][curr[0]] = START
stack = deque()
# Cleaning the path from backtracking:
for step in path:
if any((
stack and step == "N" and stack[-1] == "S",
stack and step == "S" and stack[-1] == "N",
stack and step == "E" and stack[-1] == "W",
stack and step == "W" and stack[-1] == "E",
)):
stack.pop()
continue
stack.append(step)
found = False
# Processing the path:
for step in stack:
ox, oy = OFFSETS[step]
x, y = curr
newx, newy = x + ox, y + oy
curr = [newx, newy]
if matrix[newy][newx] != EMPTY:
matrix[newy][newx] = COLLISION
found = True
break
matrix[newy][newx] = VISITED
stdout.write("TAK\n" if found else "NIE\n")
ZnJvbSBzeXMgaW1wb3J0IHN0ZG91dApmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQpmcm9tIHR5cGVzIGltcG9ydCBNYXBwaW5nUHJveHlUeXBlCmltcG9ydCBpbwppbXBvcnQgb3MKCmlucHV0ID0gaW8uQnl0ZXNJTyhvcy5yZWFkKDAsIG9zLmZzdGF0KDApLnN0X3NpemUpKS5yZWFkbGluZQoKU0laRSwgRU1QVFksIFZJU0lURUQsIFNUQVJULCBDT0xMSVNJT04sIE9GRlNFVFMgPSAyMDEsICIuIiwgIkAiLCAiIyIsICJYIiwgTWFwcGluZ1Byb3h5VHlwZSgKICAgIGRpY3QoTj0oMCwgMSksIEU9KDEsIDApLCBTPSgwLCAtMSksIFc9KC0xLCAwKSkKKQoKbiA9IGludChpbnB1dCgpKQoKd2hpbGUgbjoKICAgIG4gLT0gMQogICAgcGF0aCA9IGlucHV0KCkuZGVjb2RlKCkuc3RyaXAoKQogICAgY3VyciA9IFtTSVpFIC8vIDIsIFNJWkUgLy8gMl0KCiAgICBtYXRyaXggPSBbW0VNUFRZXSAqIFNJWkUgZm9yIGkgaW4gcmFuZ2UoU0laRSldCiAgICBpZiBwYXRoOgogICAgICAgIG1hdHJpeFtjdXJyWzFdXVtjdXJyWzBdXSA9IFNUQVJUCgogICAgc3RhY2sgPSBkZXF1ZSgpCgogICAgIyBDbGVhbmluZyB0aGUgcGF0aCBmcm9tIGJhY2t0cmFja2luZzoKICAgIGZvciBzdGVwIGluIHBhdGg6CiAgICAgICAgaWYgYW55KCgKICAgICAgICAgICAgc3RhY2sgYW5kIHN0ZXAgPT0gIk4iIGFuZCBzdGFja1stMV0gPT0gIlMiLAogICAgICAgICAgICBzdGFjayBhbmQgc3RlcCA9PSAiUyIgYW5kIHN0YWNrWy0xXSA9PSAiTiIsCiAgICAgICAgICAgIHN0YWNrIGFuZCBzdGVwID09ICJFIiBhbmQgc3RhY2tbLTFdID09ICJXIiwKICAgICAgICAgICAgc3RhY2sgYW5kIHN0ZXAgPT0gIlciIGFuZCBzdGFja1stMV0gPT0gIkUiLAogICAgICAgICkpOgogICAgICAgICAgICBzdGFjay5wb3AoKQogICAgICAgICAgICBjb250aW51ZQoKICAgICAgICBzdGFjay5hcHBlbmQoc3RlcCkKCiAgICBmb3VuZCA9IEZhbHNlCgogICAgIyBQcm9jZXNzaW5nIHRoZSBwYXRoOgogICAgZm9yIHN0ZXAgaW4gc3RhY2s6CiAgICAgICAgb3gsIG95ID0gT0ZGU0VUU1tzdGVwXQogICAgICAgIHgsIHkgPSBjdXJyCiAgICAgICAgbmV3eCwgbmV3eSA9IHggKyBveCwgeSArIG95CiAgICAgICAgY3VyciA9IFtuZXd4LCBuZXd5XQogICAgICAgIGlmIG1hdHJpeFtuZXd5XVtuZXd4XSAhPSBFTVBUWToKICAgICAgICAgICAgbWF0cml4W25ld3ldW25ld3hdID0gQ09MTElTSU9OCiAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQogICAgICAgICAgICBicmVhawogICAgICAgIG1hdHJpeFtuZXd5XVtuZXd4XSA9IFZJU0lURUQKCiAgICBzdGRvdXQud3JpdGUoIlRBS1xuIiBpZiBmb3VuZCBlbHNlICJOSUVcbiIp