#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
long long ans = inf, s[4][200003];
int n, m, k, c[200003], ok[200003], kind;
int sta[4][200003], top[4], cur[4], I;
inline int rd() {
  int res = 0;
  char c;
  while ((c = getchar()) < '0' || c > '9')
    ;
  while (c >= '0' && c <= '9') res = res * 10 + c - '0', c = getchar();
  return res;
}
inline int calc(int mid) {
  int i;
  for (i = 0; i <= 3; i++)
    cur[i] = upper_bound(sta[i] + 1, sta[i] + 1 + top[i], mid) - sta[i] - 1;
  cur[0] = max(cur[0], I), cur[1] = max(cur[1], k - I),
  cur[2] = max(cur[2], k - I);
  mid = 0;
  for (i = 0; i <= 3; i++) mid += cur[i];
  return mid;
}
inline int erfen() {
  int l = 0, r = kind, mid;
  while (l < r) {
    mid = (l + r) >> 1;
    if (calc(c[mid]) >= m)
      r = mid;
    else
      l = mid + 1;
  }
  return c[r];
}
inline void work() {
  int i, j, t, lim, se;
  long long sum;
  for (i = 1; i <= n; i++) {
    if (ok[i] == 3)
      sta[0][++top[0]] = c[i];
    else if (ok[i] == 1)
      sta[1][++top[1]] = c[i];
    else if (ok[i] == 2)
      sta[2][++top[2]] = c[i];
    else
      sta[3][++top[3]] = c[i];
  }
  for (i = 0; i <= 3; i++) sort(sta[i] + 1, sta[i] + 1 + top[i]);
  se = min(top[1], top[2]);
  if (se + top[0] < k || (top[0] < k && (k << 1) > m + top[0])) {
    ans = -1;
    return;
  }
  for (i = 0; i <= 3; i++)
    for (j = 1; j <= top[i]; j++) s[i][j] = s[i][j - 1] + sta[i][j];
  sort(c + 1, c + 1 + n);
  kind = unique(c + 1, c + 1 + n) - c - 1;
  lim = min(top[0], k);
  for (I = max(2 * k - m, k - se); I <= lim; I++) {
    t = erfen();
    sum = 1LL * m * t;
    for (j = 0; j <= 3; j++) sum += s[j][cur[j]] - 1LL * cur[j] * t;
    ans = min(ans, sum);
  }
  if (ans == inf) ans = -1;
}
int main() {
  n = rd(), m = rd(), k = rd();
  int i, a;
  if (m < k) {
    puts("-1");
    return 0;
  }
  for (i = 1; i <= n; i++) c[i] = rd();
  a = rd();
  for (i = 1; i <= a; i++) ok[rd()] = 1;
  a = rd();
  for (i = 1; i <= a; i++) ok[rd()] |= 2;
  work();
  printf(
      "%I64d"
      "\n",
      ans);
  return 0;
}
