在这个问题中,我们关注给定自然数 $n$ 的约数。令 $D(n)$ 表示这些约数的集合。我们给定一个表达式,它由集合 $D(n)$ 中的常数、可以取集合 $D(n)$ 中任意值的变量,以及计算最大公约数和最小公倍数的二元函数组成。
对于给定的表达式,我们希望判断其值是否在所有变量取值的情况下都保持不变。
输入格式
标准输入的第一行包含一个整数 $t$ ($1 \le t \le 1,000$),表示测试用例的数量。接下来的 $t$ 行,每行包含一个测试用例的描述。每个描述以一个整数 $n_{i}$ ($1 \le n_{i} \le 10^{18}$) 开头,随后是表达式的描述。表达式可以是常数、变量或函数。
描述中的每个数字都代表一个常数。所有这些数字都是 $n_{i}$ 的正约数。
变量由最多 5 个小写英文字母组成的序列表示。由相同字母序列表示的变量被视为同一个变量。
序列 NWD 和 NWW 分别代表计算最大公约数和最小公倍数的函数。函数名后跟一个空格,随后是空格分隔的参数描述,参数本身也是表达式(因此,表达式的描述是递归的)。
你可以假设输入文件的总大小不超过 2 MB。
输出格式
程序应向标准输出输出 $t$ 行,包含后续测试用例的答案。单个测试用例的答案为一个单词:TAK(波兰语中表示“是”)或 NIE(波兰语中表示“否”),说明该测试用例中的表达式是否表示一个常数函数。
样例
输入 1
3 24 NWD 3 NWW x 12 15 NWD 15 nwd 10 10
输出 1
TAK NIE TAK