약수
시간 제한2초메모리 제한512 MB
n과 n의 약수로 만든 식이 주어질 때, 변수에 어떤 약수를 대입해도 식의 값이 항상 같은지 판정한다.
문제
자연수 의 약수들을 생각한다. 의 모든 약수의 집합을 이라 하자. 다음 세 가지로 이루어진 식이 주어진다.
- 에 속하는 상수,
- 의 임의의 값을 가질 수 있는 변수,
- 두 값의 최대공약수와 최소공배수를 계산하는 두 개의 이항 함수.
주어진 식의 값이 변수에 어떤 값을 대입하든 항상 같은지, 즉 식이 상수 함수를 나타내는지 판별하여라.
입력
첫째 줄에 테스트 케이스의 수 ()가 주어진다. 이어지는 개의 각 줄에는 하나의 테스트 케이스가 주어진다.
각 줄은 정수 ()으로 시작하고, 그 뒤에 식의 서술이 이어진다. 식은 상수, 변수, 또는 함수 적용 중 하나이다.
- 각 수는 상수이며, 의 양의 약수이다.
- 변수는 길이가 이하인 영어 소문자의 나열이다. 같은 글자열은 같은 변수를 나타낸다.
- 이름
NWD와NWW는 각각 최대공약수와 최소공배수를 계산하는 함수를 나타낸다. 함수 이름 뒤에는 공백 하나가 오고, 그 뒤에 공백으로 구분된 두 인자의 서술이 이어진다. 각 인자는 그 자체로 하나의 식이다(따라서 식의 서술은 재귀적이다).
입력 파일 전체의 크기는 MB를 넘지 않는다.
출력
개의 줄에 각 테스트 케이스의 답을 출력한다. 각 테스트 케이스에 대해, 변수 값에 관계없이 식이 상수 함수를 나타내면 TAK(폴란드어로 예)를, 그렇지 않으면 NIE(폴란드어로 아니오)를 출력한다.