#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int x,y,z,box1[2010][2010],t1[2010][2010],t2[2010][2010],box2[2010][2010];
int insert(int a,int b,int c,int i)
{
if(c > box1[a][b])
{
box2[a][b] = box1[a][b];
t2[a][b] = t1[a][b];
box1[a][b] = c;
t1[a][b] = i;
}
else
{
if(box2[a][b] < c)
{
box2[a][b] = c;
t2[a][b] = i;
}
}
}
int ii(int a,int b,int c,int i)
{
if(a != b)insert(a,b,c,i);
insert(b,a,c,i);
if(a != c)insert(a,c,b,i);
insert(c,a,b,i);
if(b != c)insert(b,c,a,i);
insert(c,b,a,i);
}
int sp(int i)
{
return i * i * i;
}
int main()
{
int n;
cin >> n;
for (int i = 1;i <= n;i++)
{
cin >> x >> y >> z;
ii(x,y,z,i);
}
int maxn = 0,ans1,ans2;
for (int i = 1;i <= 1000;i++)
{
for (int j = 1;j <= 1000;j++)
{
int t = sp(min(box1[i][j] + box2[i][j],min(i,j))) / 4;
if(t > maxn)
{
ans1 = t1[i][j];
ans2 = t2[i][j];
maxn = t;
}
}
}
if(ans2 == 0)
{
cout << 0 << endl;
cout << ans1 << endl;
cout << maxn << endl;
}
else
{
cout << 1 << endl;
cout << ans1 << " " << ans2 << endl;
cout << maxn << endl;
}
return 0;
}