문제
전산과의 철기는 겨울학기 내내 학교에 보이질 않았다.
알고보니 그는 신기한 기계를 설계하고 있었다.
이 기계에 N명의 학생들의 점수를 넣으면 그 점수들을 정렬해서 k등의 점수가 몇 점인지를 알려준다.
이 기계를 뜯어보니 이 기계는 여러 개의 min/max 함수들만으로 이루어져 있었다.
min/max 함수는 여러 개의 수를 넣으면 그 중에서 최소인 것과 최대인 것을 그 출력으로 내어놓는다.
따라서 이 기계의 구조를 아래와 같은 수식으로 나타낼 수 있을 것이다.
m은 min, 즉 최소값 함수이고 M은 max, 즉 최대값 함수이다.
M(m(M(a,b),M(c,d)),m(a,b),m(c,d))
위와 같은 기계의 경우 네 변수 a, b, c, d로 어떤 점수가 주어지더라도 항상 2등의 점수를 얻을 수 있다.
철기는 어떤 기계의 구조를 주고 k를 알려주지 않은 채 이를 문제로 내야겠다고 생각했다. k를 알아낼 수 있을까?
단, 입력될 수 있는 점수가 모두 다를 필요는 없다.
이 경우 성적들을 비내림차순으로 나열했을 때 k번째의 수가 출력된다고 생각하면 된다.
입력
첫 행에는 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 유일한 행은 길이 1000 이하의 수식으로 구성된다. 이 수식은 위의 예에서 다룬 수식의 형태를 가지며 공백은 없다. 수식에 등장하는 변수의 수는 12가지 이하로 a부터 l까지의 범위의 소문자 알파벳이 해당된다.
출력
테스트 케이스 하나당 한 행씩 순서대로 유일하게 결정한 k를 출력한다. k가 유일하게 존재하지 않는다면 "Not unique"를 출력한다.
예제
3
m(a,l,b)
M(m(M(a,b),M(c,d)),m(a,b),m(c,d))
m(M(a,b),M(c,d))
3
2
Not unique