from sys import stdin input = stdin.readline def func(limit): ans = 0 right = M-1 l, r = -1, -1 for left in range(N): while 0 <= right and limit < T[left]+B[right]: right -= 1 if right == -1: break ans += right+1 if T[left]+B[right] == limit and l == -1: l, r = idxT[left], idxB[right] for i in range(K): if len(F[i]) == 0: continue left = len(F[i])-1 right = len(F[i])-1 for j, e in enumerate(E[i]): while 0 <= right and limit+S[i] < e+F[i][right]: right -= 1 while 0 <= left and limit < e+F[i][left]: left -= 1 if right == -1: break ans += right-left if limit+S[i] == e+F[i][right] and l == -1: l, r = idxE[i][j], idxF[i][right] return ans, l, r for _ in range(int(input())): N, M, K, P = map(int, input().split()) T = list(map(int, input().split())) C = list(map(int, input().split())) B = list(map(int, input().split())) D = list(map(int, input().split())) S = list(map(int, input().split())) E = [[] for _ in range(K)] idxE = [[] for _ in range(K)] F = [[] for _ in range(K)] idxF = [[] for _ in range(K)] for i in range(N): E[C[i]-1].append((T[i], i)) for i in range(M): F[D[i]-1].append((B[i], i)) for i in range(K): if E[i]: a, b = map(list, zip(*sorted(E[i], key=lambda x:x[0]))) E[i] = a idxE[i] = b if F[i]: a, b = map(list, zip(*sorted(F[i], key=lambda x:x[0]))) F[i] = a idxF[i] = b idxT, T = map(list, zip(*sorted(enumerate(T), key=lambda x:x[1]))) idxB, B = map(list, zip(*sorted(enumerate(B), key=lambda x:x[1]))) left = 0 right = 10**10 while left+1 < right: mid = (left+right)//2 f, _, _ = func(mid) if f < P: left = mid else: right = mid _, l, r = func(right) if l != -1: print(l+1, r+1) else: raise ValueError("-1")