#include <bits/stdc++.h>
using namespace std;
int n, m, k, p, q, a, b, c, d, vis[200010];
int V[200010], A[200010], B[200010], C[200010], D[200010];
int top1, top2, top3, top4, cnt;
long long ans = 1e18, sum = 0;
int main() {
  int x;
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= n; i++) scanf("%d", &V[i]);
  scanf("%d", &p);
  for (int i = 1; i <= p; i++) scanf("%d", &x), vis[x] = 1;
  scanf("%d", &q);
  for (int i = 1; i <= q; i++) scanf("%d", &x), vis[x] = vis[x] ? 3 : 2;
  for (int i = 1; i <= n; i++) {
    if (vis[i] == 1) A[++a] = V[i];
    if (vis[i] == 2) B[++b] = V[i];
    if (vis[i] == 3) C[++c] = V[i];
    if (vis[i] == 0) D[++d] = V[i];
  }
  sort(A + 1, A + a + 1);
  sort(B + 1, B + b + 1);
  sort(C + 1, C + c + 1);
  sort(D + 1, D + d + 1);
  top1 = top2 = top3 = top4 = 1;
  A[a + 1] = B[b + 1] = C[c + 1] = D[d + 1] = 1e9;
  for (int i = 0; i <= min(m, c); i++) {
    if (k - i > a || k - i > b) continue;
    while (i >= top3) sum += C[top3++], cnt++;
    if (k - i + 2 == top1) sum -= A[--top1], cnt--;
    while (k - i >= top1) sum += A[top1++], cnt++;
    if (k - i + 2 == top2) sum -= B[--top2], cnt--;
    while (k - i >= top2) sum += B[top2++], cnt++;
    while (cnt < m) {
      int Min = 1e9;
      if (top1 <= a) Min = min(Min, A[top1]);
      if (top2 <= b) Min = min(Min, B[top2]);
      if (top3 <= c) Min = min(Min, C[top3]);
      if (top4 <= d) Min = min(Min, D[top4]);
      if (Min >= 1e9) break;
      cnt++;
      if (Min == A[top1])
        sum += A[top1++];
      else if (Min == B[top2])
        sum += B[top2++];
      else if (Min == C[top3])
        sum += C[top3++];
      else if (Min == D[top4])
        sum += D[top4++];
    }
    if (cnt == m) ans = min(ans, sum);
  }
  if (ans >= 1e18) ans = -1;
  printf("%lld\n", ans);
  return 0;
}
