#include <bits/stdc++.h>
using namespace std;
struct node {
  int a, b, c;
  int index;
} e[101010];
bool cmp(node A, node B) {
  if (A.a == B.a) {
    if (A.b == B.b) {
      return A.c < B.c;
    } else
      return A.b < B.b;
  } else
    return A.a < B.a;
}
int main() {
  int n;
  scanf("%d", &n);
  int mx = -1, c[3], flag = 0, p, pl, pr;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < 3; j++) scanf("%d", &c[j]);
    sort(c, c + 3);
    e[i].a = c[2], e[i].b = c[1], e[i].c = c[0], e[i].index = i;
    if (c[0] > mx) {
      mx = c[0];
      p = i;
    }
  }
  sort(e + 1, e + n + 1, cmp);
  for (int i = 1; i <= n; i++) {
    if (e[i].a == e[i + 1].a && e[i].b == e[i + 1].b) {
      c[0] = e[i].c + e[i + 1].c;
      c[1] = e[i].b;
      c[2] = e[i].a;
      sort(c, c + 3);
      if (c[0] > mx) {
        mx = c[0], flag = 1;
        pl = e[i].index, pr = e[i + 1].index;
      }
    }
  }
  if (flag) {
    puts("2");
    if (pl > pr) swap(pl, pr);
    printf("%d %d\n", pl, pr);
  } else {
    puts("1");
    printf("%d\n", p);
  }
  return 0;
}
