#include <bits/stdc++.h>
using namespace std;
struct Sta {
  int id, col, val;
  friend bool operator<(const Sta& a, const Sta& b) {
    if (a.col == b.col) return a.val > b.val;
    return a.col < b.col;
  }
} S[100005];
long long fval[100005], sval[100005];
int fcol[100005], scol[100005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &S[i].col, &S[i].val);
    S[i].id = i + 1;
  }
  sort(S, S + n);
  memset(fval, 0, sizeof(fval));
  memset(sval, 0, sizeof(sval));
  memset(fcol, -1, sizeof(fcol));
  memset(scol, -1, sizeof(scol));
  long long tmp = S[0].val;
  int cnt = 1;
  fval[1] = S[0].val;
  fcol[1] = S[0].col;
  for (int i = 1; i < n; i++) {
    if (S[i].col == S[i - 1].col) {
      tmp += S[i].val;
      cnt++;
    } else {
      tmp = S[i].val;
      cnt = 1;
    }
    if (tmp > fval[cnt]) {
      sval[cnt] = fval[cnt];
      scol[cnt] = fcol[cnt];
      fval[cnt] = tmp;
      fcol[cnt] = S[i].col;
    } else if (tmp > sval[cnt]) {
      sval[cnt] = tmp;
      scol[cnt] = S[i].col;
    }
  }
  long long ans = 0;
  int fc = -1, sc = -1;
  int ac = 0;
  for (int i = 1; i <= n; i++) {
    if (fcol[i] == -1) break;
    int tfc = fcol[i];
    int tsc = scol[i];
    int tc = i * 2;
    long long tans = fval[i] + sval[i];
    if (fcol[i - 1] != fcol[i]) {
      if (fval[i - 1] > sval[i]) {
        tsc = fcol[i - 1];
        tans = fval[i] + fval[i - 1];
        tc--;
      }
    } else {
      if (sval[i - 1] > sval[i]) {
        tsc = scol[i - 1];
        tans = fval[i] + sval[i - 1];
        tc--;
      }
    }
    if (tsc == -1) continue;
    if (tans > ans) {
      ans = tans;
      fc = tfc;
      sc = tsc;
      ac = tc;
    }
  }
  int fpos = -1, spos = -1;
  for (int i = 0; i < n; i++) {
    if (S[i].col == fc) {
      fpos = i;
      break;
    }
  }
  for (int i = 0; i < n; i++) {
    if (S[i].col == sc) {
      spos = i;
      break;
    }
  }
  printf("%I64d\n", ans);
  printf("%d\n", ac);
  for (int i = 0; i < ac; i++) {
    if (i) putchar(' ');
    printf("%d", S[(i & 1) ? spos++ : fpos++].id);
  }
  puts("");
}
