#include <bits/stdc++.h>
using namespace std;
const int INF = -1;
const int MOD = 1000000007;
const long long INFll = 1ll * INF * INF;
const long double ldINF = 1e+018;
const long double EPS = 0.000000001;
template <typename T>
ostream& operator<<(ostream& out, pair<T, T>& a) {
  out << a.first << " " << a.second;
  return out;
}
template <typename T>
istream& operator>>(istream& in, pair<T, T>& a) {
  in >> a.first >> a.second;
  return in;
}
template <typename T>
istream& operator>>(istream& in, vector<T>& a) {
  for (int i = 0; i < a.size(); ++i) in >> a[i];
  return in;
}
template <typename T>
ostream& operator<<(ostream& out, vector<T> a) {
  for (int i = 0; i < a.size(); ++i)
    if (i == a.size() - 1)
      out << a[i];
    else
      out << a[i] << " ";
}
struct triple {
  int x, y, num;
};
bool comp(triple a, triple b) { return a.y - a.x < b.y - b.x; }
int dp[3100][3100];
int pos[3100][3100];
pair<int, int> v[3100];
int main() {
  ios_base::sync_with_stdio(0);
  int n, p, s;
  cin >> n >> p >> s;
  for (int i = 0; i < n; i++) cin >> v[i].first;
  for (int i = 0; i < n; i++) cin >> v[i].second;
  vector<triple> c;
  for (int i = 0; i < n; i++) c.push_back({v[i].first, v[i].second, i});
  for (int i = 0; i <= n + 1; i++)
    for (int j = 0; j <= n + 1; j++) dp[i][j] = pos[i][j] = INF;
  sort(c.begin(), c.end(), comp);
  dp[0][0] = 0;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= p + s; j++) {
      if (dp[i][j] == -1) continue;
      int add;
      if (j < p)
        add = c[i].x;
      else
        add = c[i].y;
      if (dp[i][j] > dp[i + 1][j]) {
        dp[i + 1][j] = dp[i][j];
        pos[i + 1][j] = 0;
      }
      if (dp[i][j] + add > dp[i + 1][j + 1]) {
        dp[i + 1][j + 1] = dp[i][j] + add;
        pos[i + 1][j + 1] = 1;
      }
    }
  cout << dp[n][p + s] << endl;
  vector<int> a;
  int x = n, y = p + s;
  while (x) {
    if (pos[x][y] == 1) {
      x--;
      y--;
      a.push_back(c[x].num + 1);
    } else if (pos[x][y] == -1)
      y--;
    else
      x--;
  }
  reverse(a.begin(), a.end());
  for (int i = 0; i < p; i++) cout << a[i] << ' ';
  cout << endl;
  for (int i = p; i < a.size(); i++) cout << a[i] << ' ';
  cout << endl;
  return 0;
}
