from bisect import bisect_left as bs for _ in range(int(input())): n, m, k, p = list(map(int, input().split())) p = p-1 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())) A = [[] for _ in range(k)] X = [] for i in range(m): A[D[i]-1].append(B[i]) X.append(B[i]) X.sort() Y = {} for i in range(k): A[i].sort() l = 0 r = 2*10**9+1 while r-l > 1: mid = (l+r) >> 1 cnt = 0 for i in range(n): t, c = T[i], C[i]-1 cnt += bs(X, mid-t) s = S[c] cnt += bs(A[c], mid-t+s) - bs(A[c], mid-t) if cnt <= p: l = mid else: r = mid ans = l for i in range(n): t, c = T[i], C[i]-1 idx2 = bs(A[c], ans-t+s) f = 0 if idx2 < len(A[c]) and A[c][idx2] == ans-t+s: f = 1 else: idx0 = bs(X, ans-t) idx1 = bs(X, ans-t+1) s = S[c] idx2 = bs(A[c], ans-t) idx3 = bs(A[c], ans-t+1) if idx1-idx0 > idx3-idx2: f = 1 if f: for j in range(m): if c != D[j]-1 and t + B[j] == ans: print(i+1, j+1) break if c == D[j]-1 and t + B[j] - S[c] == ans: print(i+1, j+1) break break