#define _CRT_SECURE_NO_WARNINGS
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
#ifdef ONLINE_JUDGE
#include <algorithm>
#include <bitset>
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <complex>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <cwchar>
#include <cwctype>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
typedef long long int64_t;
typedef unsigned long long uint64_t;
#else
#include <bits/stdc++.h>
#endif
using namespace std;
#define CRP(t, x) const t &x
#define OPX(op, t, x) operator op(CRP(t, x))
#define OPL(t, x) bool OPX(<, t, x) const
#define FIL(x, v) memset(x, v, sizeof(x))
#define CLR(x) FIL(x, 0)
#define NE1(x) FIL(x, -1)
#define INF(x) FIL(x, 0x3f)
#ifndef _DEBUG
#define _DEBUG 0
#endif // !_DEBUG
#define IFD if (_DEBUG)
typedef int64_t ll, i64;
typedef uint64_t ull, u64;
inline char getchar(int)
{
    static char buf[64 << 20], *S = buf, *T = buf;
    if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + buf;
    return S == T ? EOF : *S++;
}
template <typename T>
inline bool read(T &x)
{
    int ch = x = 0, f = 1;
    while (!isdigit(ch = getchar()))
        if (ch == EOF)
            return false;
        else if (ch == '-')
            f = 0;
    for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
    return x = f ? x : -x, true;
}
template <typename T1, typename T2>
inline bool read(T1 &v1, T2 &v2) { return read(v1) && read(v2); }
template <typename T1, typename T2, typename T3>
inline bool read(T1 &v1, T2 &v2, T3 &v3) { return read(v1) && read(v2) && read(v3); }
template <typename T1, typename T2, typename T3, typename T4>
inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4) { return read(v1) && read(v2) && read(v3) && read(v4); }
template <typename T1, typename T2, typename T3, typename T4, typename T5>
inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5) { return read(v1) && read(v2) && read(v3) && read(v4) && read(v5); }
inline ll gcd(ll a, ll b)
{
    for (; b; swap(a, b)) a %= b;
    return a;
}
inline ll fpow(ll a, ll b, ll m)
{
    ll r = 1;
    for (; b; b >>= 1, a = a * a % m)
        if (b & 1) r = r * a % m;
    return r;
}
const double eps = 1e-8;
inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; }
char str[205];
int stk[205], top;
int main()
{
    while (scanf("%s", str), *str - '0')
    {
        int len = strlen(str);
        bool flag = true;
        for (int st = 0; st < 32 && flag; st++)
        {
            top = 0;
            for (int i = len - 1; i >= 0; i--)
                if (islower(str[i]))
                    stk[top++] = st >> (str[i] - 'p') & 1;
                else
                    switch (str[i])
                    {
                    case 'K':
                        top--;
                        stk[top - 1] = stk[top] && stk[top - 1];
                        break;
                    case 'A':
                        top--;
                        stk[top - 1] = stk[top] || stk[top - 1];
                        break;
                    case 'C':
                        top--;
                        stk[top - 1] = !stk[top - 1] || stk[top];
                        break;
                    case 'E':
                        top--;
                        stk[top - 1] = stk[top] == stk[top - 1];
                        break;
                    case 'N':
                        stk[top - 1] = !stk[top - 1];
                        break;
                    }
            if (top != 1 || *stk == 0) flag = false;
        }
        puts(flag ? "tautology" : "not");
    }
    return 0;
}