def main(): n, m = list(map(int, input().split())) A = list(map(int, input().split())) B = list(map(int, input().split())) X = list(map(lambda x: int(x)-1, input().split())) Y = list(map(lambda x: int(x)-1, input().split())) def f(A, B, X, Y): n = len(A) m = len(B) A_ = [0] * (n+1) B_ = [0] * (m+1) for i in range(n): A_[i+1] = A_[i] + A[i] for i in range(m): B_[i+1] = B_[i] + B[i] C0 = [-1] * (n+m) C1 = [-1] * (n+m) C2 = [-1] * (n+m) C3 = [-1] * (n+m) for i in range(n): l = i r = n-1-i if l <= r: le = l C0[X[i]] = l C1[X[i]] = A_[i+le+1] else: le = r C2[X[i]] = r C3[X[i]] = A_[-1] - A_[i-le] #print(C0, C1) #print(C1, C3) rep = -1 for i in range(m): l = i r = m-1-i le = min(l, r) if C0[Y[i]] != -1 and C0[Y[i]] <= le: re = C0[Y[i]] rep = max(rep, C1[Y[i]]+B_[i+re+1]-B_[i-re]) #print(i, Y[i], C1[Y[i]], B_[i+le+1]-B_[i-le]) if C2[Y[i]] != -1 and C2[Y[i]] <= le: re = C2[Y[i]] rep = max(rep, C3[Y[i]]+B_[i+re+1]-B_[i-re]) #print(i, Y[i], C3[Y[i]], B_[i++1]-B_[i-le]) return rep #print(f(A, B, X, Y), f(B, A, Y, X)) return max(f(A, B, X, Y), f(B, A, Y, X)) for _ in range(int(input())): print(main())