#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,cnt;
struct A
{
int r1;
int r2;
int r3;
int xx;
int yy;
long long pp;
}a[100010];
int pd(int a,int b,int c,int d,int e,int f)
{
if(a==d||a==e||a==f||b==d||b==e||b==f||c==d||c==e||c==f)
{
if(a==d)
{
if((b==e&&c==f)||(b==f&&c==e)) return 3;
else if(b==e) return 4;
else if(b==f) return 5;
else if(c==e) return 6;
else if(c==f) return 7;
else return 0;
}
else if(a==e)
{
if((b==d&&c==f)||(b==f&&c==d)) return 3;
else if(b==d) return 8;
else if(b==f) return 9;
else if(c==d) return 10;
else if(c==f) return 11;
else return 0;
}
else if(a==f)
{
if((b==d&&c==e)||(b==e&&c==d)) return 3;
else if(b==d) return 12;
else if(b==e) return 13;
else if(c==d) return 14;
else if(c==e) return 15;
else return 0;
}
else if(b==d)
{
if((a==e&&c==f)||(a==f&&c==e)) return 3;
else if(a==e) return 16;
else if(a==f) return 17;
else if(c==e) return 18;
else if(c==f) return 19;
}
else if(b==e)
{
if((a==d&&c==f)||(a==f&&c==d)) return 3;
else if(a==d) return 20;
else if(a==f) return 21;
else if(c==d) return 22;
else if(c==f) return 23;
}
else if(b==f)
{
if((a==e&&c==d)||(a==d&&c==e)) return 3;
else if(a==e) return 24;
else if(a==d) return 25;
else if(c==e) return 26;
else if(c==d) return 27;
}
else return 0;
}
else return 0;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].r1>>a[i].r2>>a[i].r3;
a[i].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3)),3)/4;
for(int j=1;j<i;j++)
{
int s=pd(a[j].r1,a[j].r2,a[j].r3,a[i].r1,a[i].r2,a[i].r3);
if(s==3)
{
cnt++;
a[n+cnt].pp=max((pow(min(a[i].r1+a[i].r1,min(a[i].r2,a[i].r3)),3)/4),max((pow(min(a[i].r1,min(a[i].r2+a[i].r2,a[i].r3)),3)/4),(pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[i].r3)),3)/4)));
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==4)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[j].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==5)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r3,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==6)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[j].r2)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==7)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==8)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[j].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==9)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1+a[j].r3,min(a[i].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==10)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[j].r2)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==11)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1+a[j].r2,min(a[i].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==12)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r3,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==13)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1+a[j].r3,min(a[i].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==14)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==15)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1+a[j].r2,min(a[i].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==16)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r1,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==17)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r3,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==18)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[j].r1)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==19)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r1,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==20)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[j].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==21)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1+a[j].r3,min(a[i].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==22)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2,a[i].r3+a[j].r1)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==23)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1+a[j].r1,min(a[i].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==24)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r1,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==25)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r3,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==26)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1+a[j].r1,min(a[i].r2,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
else if(s==27)
{
cnt++;
a[n+cnt].pp=pow(min(a[i].r1,min(a[i].r2+a[j].r1,a[i].r3)),3)/4;
a[n+cnt].xx=j;
a[n+cnt].yy=i;
}
}
}
long long maxn=-1,ans1,ans2,ans22,ans3;
for(int i=1;i<=cnt+n;i++)
{
if(a[i].pp>maxn)
{
maxn=a[i].pp;
if(a[i].xx==0)
{
ans1=0;
ans2=i;
ans3=maxn;
}
else
{
ans1=1;
ans2=a[i].xx;
ans22=a[i].yy;
ans3=maxn;
}
}
}
if(ans1==0) cout<<ans1<<endl<<ans2<<endl<<ans3<<endl;
else cout<<ans1<<endl<<ans2<<" "<<ans22<<endl<<ans3<<endl;
return 0;
}