#include <bits/stdc++.h>
using namespace std;
int sla[500000], vis[500000], dis[500000], s, t;
int ans;
int lt[500000], nt[500000], bi[500000], ci[500000], di[500000], tl;
queue<int> Q;
void flow(int p, int nl) {
  ans += di[p] * nl;
  ci[p] -= nl;
  ci[(p & 1 ? p + 1 : p - 1)] += nl;
}
int dfs(int nw, int mx) {
  vis[nw] = 1;
  if (nw == t) return mx;
  int hl = 0;
  for (int p = lt[nw]; p; p = nt[p])
    if ((ci[p]) && (!vis[bi[p]]))
      if (dis[nw] + di[p] == dis[bi[p]]) {
        int nl = dfs(bi[p], min(ci[p], mx - hl));
        hl += nl;
        flow(p, nl);
        if (hl == mx) return mx;
      } else
        sla[bi[p]] = min(sla[bi[p]], dis[nw] + di[p] - dis[bi[p]]);
  return hl;
}
void SPFA() {
  for (int i = 1; i <= t; ++i) dis[i] = 1000000000;
  dis[s] = 0;
  for (int i = 1; i <= t; ++i) vis[i] = 0;
  vis[s] = 1;
  while (!Q.empty()) Q.pop();
  Q.push(s);
  while (!Q.empty()) {
    int nw = Q.front();
    Q.pop();
    vis[nw] = 0;
    for (int p = lt[nw]; p; p = nt[p])
      if (ci[p])
        if (dis[nw] + di[p] < dis[bi[p]]) {
          dis[bi[p]] = dis[nw] + di[p];
          if (!vis[bi[p]]) {
            vis[bi[p]] = 1;
            Q.push(bi[p]);
          }
        }
  }
}
int ZKW() {
  int hl = 0;
  SPFA();
  while (true) {
    do {
      for (int i = 1; i <= t; ++i) sla[i] = 1000000000;
      for (int i = 1; i <= t; ++i) vis[i] = 0;
      hl += dfs(s, 1000000000);
    } while (vis[t]);
    int minsla = 1000000000;
    for (int i = 1; i <= t; ++i)
      if (!vis[i]) minsla = min(minsla, sla[i]);
    if (minsla == 1000000000) break;
    for (int i = 1; i <= t; ++i)
      if (!vis[i]) dis[i] += minsla;
  }
  return hl;
}
void build(int a, int b, int c, int d) {
  nt[++tl] = lt[a];
  lt[a] = tl;
  bi[tl] = b;
  ci[tl] = c;
  di[tl] = d;
  nt[++tl] = lt[b];
  lt[b] = tl;
  bi[tl] = a;
  ci[tl] = 0;
  di[tl] = -d;
}
int n, a, b;
int main() {
  cin >> n >> a >> b;
  s = n + 3, t = s + 1;
  for (int i = 1; i <= n; ++i) {
    int ai;
    cin >> ai;
    build(n + 1, i, 1, -ai);
  }
  for (int i = 1; i <= n; ++i) {
    int ai;
    cin >> ai;
    build(n + 2, i, 1, -ai);
  }
  build(s, n + 1, a, 0);
  build(s, n + 2, b, 0);
  for (int i = 1; i <= n; ++i) build(i, t, 1, 0);
  ZKW();
  cout << -ans << "\n";
  for (int i = 1; i <= n; ++i)
    if (!ci[i * 2 - 1]) cout << i << " ";
  cout << "\n";
  for (int i = 1; i <= n; ++i)
    if (!ci[i * 2 - 1 + n * 2]) cout << i << " ";
}
