#include <bits/stdc++.h>
using namespace std;
const long long maxx = 790;
const long long maxn = 1e6 + 7;
const long long mod = 1e9 + 7;
const long long maxs = 500000 + 7;
const long long maxm = 400000 + 7;
const long long maxk = 1008 + 7;
const long long maxw = 100 + 7;
const long long maxh = 100 + 7;
const double pi = 3.1415926;
const long long ten = 10;
const long long ooi = 1e9 + 7;
const long long ool = 1e16 + 7;
const long double eps = 1e-8;
const int apsz = 26;
vector<pair<int, int> > seq;
vector<int> posMk;
int n, m, k;
void init() {
  cin >> n >> m >> k;
  seq = vector<pair<int, int> >(n);
  for (long long i = (0); i < (n); i++) cin >> seq[i].first, seq[i].second = i;
}
vector<int> match;
long long ans = 0;
void solve() {
  sort(seq.begin(), seq.end(), greater<pair<int, int> >());
  for (long long i = (0); i < (m * k); i++)
    posMk.push_back(seq[i].second), ans += seq[i].first;
  sort(posMk.begin(), posMk.end());
  for (int i = 0; i < k - 1; i++) {
    int tmp = posMk[(i + 1) * m - 1];
    match.push_back(tmp);
  }
  cout << ans << endl;
  int flag = 1;
  for (int x : match) {
    if (flag)
      flag = 0;
    else
      cout << " ";
    cout << x + 1;
  }
  cout << endl;
}
int main(void) {
  ios::sync_with_stdio(false);
  cout.tie(0);
  cin.tie(0);
  init();
  solve();
  return 0;
}
