from atcoder.maxflow import MFGraph N, M = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) source = N+M sink = N+M+1 mf = MFGraph(N+M+2) for i in range(N): mf.add_edge(source, i, A[i]) for i in range(M): mf.add_edge(N+i, sink, B[i]) K, *C = map(int, input().split()) for j in range(K): mf.add_edge(C[j]-1, N+i, float('inf')) ans = sum(B) - mf.flow(source, sink) print(ans)