#include <bits/stdc++.h>
using namespace std;
int N, M, T;
map<int, int> mp;
set<pair<int, int> > p[100005];
set<pair<int, int> >::iterator it, it1;
pair<int, int> pr;
set<pair<long long, int> > an[100005];
set<pair<long long, int> >::iterator it2;
pair<long long, int> pp;
int main() {
  int i, j, k, a, b;
  int idx = 1;
  scanf("%d", &N);
  for (i = 1; i <= N; i++) {
    scanf("%d%d", &a, &b);
    if (mp[a] == 0) mp[a] = idx++;
    pr.first = b;
    pr.second = i;
    p[mp[a]].insert(pr);
  }
  long long sum;
  for (i = 1; i < idx; i++) {
    it = p[i].end();
    it--;
    pp.first = 0;
    pp.second = i;
    k = 1;
    for (;; it--) {
      pp.first += ((*it).first);
      an[k].insert(pp);
      k++;
      if (it == p[i].begin()) break;
    }
  }
  long long Mc = 1;
  int c1, c2, num;
  long long t1, t2, t3;
  int tc1, tc2, tc3;
  bool in2, ax;
  for (i = 1;; i++) {
    if (an[i].empty()) break;
    it2 = an[i].end();
    it2--;
    t1 = (*it2).first;
    tc1 = (*it2).second;
    in2 = false;
    if (it2 != an[i].begin()) {
      it2--;
      in2 = true;
      t2 = (*it2).first;
      tc2 = (*it2).second;
    }
    if (in2) {
      if (t1 + t2 > Mc) {
        Mc = t1 + t2;
        c1 = tc1;
        c2 = tc2;
        num = 2 * i;
      }
    }
    if (an[i + 1].empty()) continue;
    it2 = an[i + 1].end();
    it2--;
    ax = false;
    for (;; it2--) {
      if ((*it2).second != tc1) {
        ax = true;
        t3 = (*it2).first;
        tc3 = (*it2).second;
        break;
      }
      if (it2 == an[i + 1].begin()) break;
    }
    if (ax) {
      if (t1 + t3 > Mc) {
        Mc = t1 + t3;
        c1 = tc1;
        c2 = tc3;
        num = 2 * i + 1;
      }
    }
    if (in2) {
      it2 = an[i + 1].end();
      it2--;
      ax = false;
      for (;; it2--) {
        if ((*it2).second != tc2) {
          ax = true;
          t3 = (*it2).first;
          tc3 = (*it2).second;
          break;
        }
        if (it2 == an[i + 1].begin()) break;
      }
      if (ax) {
        if (t2 + t3 > Mc) {
          Mc = t2 + t3;
          c1 = tc2;
          c2 = tc3;
          num = 2 * i + 1;
        }
      }
    }
  }
  printf("%I64d\n", Mc);
  printf("%d\n", num);
  it = p[c2].end();
  it--;
  it1 = p[c1].end();
  it1--;
  while (num) {
    printf("%d ", (*it).second);
    num--;
    it--;
    if (!num) break;
    printf("%d ", (*it1).second);
    num--;
    it1--;
  }
  printf("\n");
  scanf(" ");
}
