바이트아사르(Byteasar)는 벌로, 두 양의 정수 수열 x=(x1,…,xn) 과 y=(y1,…,ym) 에 대해 정의된 불(boolean) 함수 F(x,y) 를 계산해야 한다. 함수는 다음과 같이 정의된다.
boolean F(x, y)
if W(x) != W(y): return 0
else if |W(x)| = |W(y)| = 1: return 1
else: return F(p(x), p(y)) AND F(s(x), s(y))
여기서 각 기호의 뜻은 다음과 같다.
예를 들어 x=(2,3,7,2,7,4,7,2,4) 이면 W(x)={2,3,4,7}, p(x)=(2,3,7,2,7), s(x)=(7,2,7,4,7,2,4) 이다.
정의를 그대로 따라 F 를 계산하면 큰 입력에서는 터무니없이 느리므로, 최대한 빠르게 계산해야 한다. 여러 개의 수열 쌍 (x,y) 를 읽어, 각 쌍에 대한 F(x,y) 의 값을 출력하여라.
첫째 줄에 분석할 수열 쌍의 개수 k (1≤k≤13) 가 주어진다. 이어지는 3k 개의 줄에 각 쌍의 정보가 주어진다. 각 쌍마다 첫째 줄에는 두 수열 x 와 y 의 길이 n 과 m (1≤n,m≤100,000) 이 공백으로 구분되어 주어진다. 둘째 줄에는 수열 x 를 이루는 n 개의 정수 xi (1≤xi≤100) 가, 셋째 줄에는 수열 y 를 이루는 m 개의 정수 yi (1≤yi≤100) 가 각각 공백으로 구분되어 주어진다.
정확히 k 개의 줄을 출력한다. i 번째 줄 (1≤i≤k) 에는 i 번째 쌍에 대한 F(x,y) 의 값인 0 또는 1 을 출력한다.