#include <bits/stdc++.h>
using namespace std;
int b[100000][2], b2[100000], b2a[100000], b2b[100000], mxo;
long long b3[100000], p[100000];
bool cmp1(int x, int y) {
  return b[x][0] < b[y][0]                         ? true
         : b[x][0] == b[y][0] && b[x][1] > b[y][1] ? true
                                                   : false;
}
bool cmp2a(int x, int y) {
  return b2a[x] < b2a[y]                     ? true
         : b2a[x] == b2a[y] && b3[x] > b3[y] ? true
                                             : false;
}
bool cmp2b(int x, int y) {
  return b2b[x] < b2b[y]                     ? true
         : b2b[x] == b2b[y] && b3[x] > b3[y] ? true
                                             : false;
}
bool cmp3(int x, int y) {
  return b2[x] < b2[y]                                 ? true
         : b2[x] == b2[y] && (mxo ^ b[x][0] > b[y][0]) ? true
                                                       : false;
}
int main() {
  int a, s, n, lb, lb2, x, y, c, mxx, mxy, mxcx, mxcy;
  long long sm, mx;
  scanf("%d", &n);
  for (a = 0; a < n; a++) {
    scanf("%d%d", &b[a][0], &b[a][1]);
    p[a] = a;
  }
  sort(p, p + n, cmp1);
  lb = -1;
  c = 0;
  sm = 0;
  for (a = 0; a < n; a++) {
    x = p[a];
    if (b[x][0] != lb) {
      c = 0;
      sm = 0;
    }
    lb = b[x][0];
    c++;
    b2[x] = c;
    b2a[x] = c / 2;
    b2b[x] = (c + 1) / 2;
    sm += b[x][1];
    b3[x] = sm;
  }
  mx = 0;
  sort(p, p + n, cmp2a);
  lb2 = -1;
  for (a = 0; a < n; a++) {
    x = p[a];
    if (b2a[x] != lb2) {
      for (s = a + 1; s < n; s++) {
        y = p[s];
        if (b2a[y] != b2a[x]) break;
        if (b[x][0] != b[y][0]) {
          if (b3[x] + b3[y] > mx) {
            mx = b3[x] + b3[y];
            mxx = b[x][0];
            mxy = b[y][0];
            mxcx = b2[x];
            mxcy = b2[y];
            mxo = mxx > mxy ^ mxcx > mxcy;
          }
          break;
        }
      }
    }
    lb2 = b2a[x];
  }
  sort(p, p + n, cmp2b);
  lb2 = -1;
  for (a = 0; a < n; a++) {
    x = p[a];
    if (b2b[x] != lb2) {
      for (s = a + 1; s < n; s++) {
        y = p[s];
        if (b2b[y] != b2b[x]) break;
        if (b[x][0] != b[y][0]) {
          if (b3[x] + b3[y] > mx) {
            mx = b3[x] + b3[y];
            mxx = b[x][0];
            mxy = b[y][0];
            mxcx = b2[x];
            mxcy = b2[y];
            mxo = mxx > mxy ^ mxcx > mxcy;
          }
          break;
        }
      }
    }
    lb2 = b2b[x];
  }
  sort(p, p + n, cmp3);
  printf("%I64d\n%d\n", mx, mxcx + mxcy);
  c = 0;
  for (a = 0; a < n; a++) {
    x = p[a];
    if (b[x][0] == mxx && b2[x] <= mxcx || b[x][0] == mxy && b2[x] <= mxcy) {
      printf("%d", x + 1);
      c++;
      if (c < mxcx + mxcy)
        printf(" ");
      else
        printf("\n");
    }
  }
  return 0;
}
