#include<bits/stdc++.h>
using namespace std;
inline int read()
{
int s=0,w=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')
w=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
s=(s<<3)+(s<<1)+c-'0';
c=getchar();
}
return s*w;
}
inline void print(int x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>=10)
print(x/10);
putchar(x%10+'0');
return;
}
map<pair<int,int>,pair<int,int> >mp,id;
int n,m,a[500010],b[500010],c[500010];
inline int calc(int r1,int r2,int r3)
{
return min({r1,r2,r3})*min({r1,r2,r3})*min({r1,r2,r3})/4;
}
int main()
{
n=read();
for(int i=1;i<=n;++i)
{
a[i]=read();
b[i]=read();
c[i]=read();
if(b[i]>c[i])
swap(b[i],c[i]);
if(a[i]>b[i])
swap(a[i],b[i]);
if(b[i]>c[i])
swap(b[i],c[i]);
pair<int,int> P={a[i],b[i]};
if(c[i]>mp[P].first)
{
mp[P].second=mp[P].first;
id[P].second=id[P].first;
mp[P].first=c[i];
id[P].first=i;
}
else if(c[i]>mp[P].second)
{
mp[P].second=c[i];
id[P].second=i;
}
P={b[i],c[i]};
if(a[i]>mp[P].first)
{
mp[P].second=mp[P].first;
id[P].second=id[P].first;
mp[P].first=a[i];
id[P].first=i;
}
else if(a[i]>mp[P].second)
{
mp[P].second=a[i];
id[P].second=i;
}
P={a[i],c[i]};
if(b[i]>mp[P].first)
{
mp[P].second=mp[P].first;
id[P].second=id[P].first;
mp[P].first=b[i];
id[P].first=i;
}
else if(b[i]>mp[P].second)
{
mp[P].second=b[i];
id[P].second=i;
}
}
int rou=0,who=0,flag=0;
for(int i=1;i<=n;++i)
{
int ro=calc(a[i],b[i],c[i]);
if(ro>rou)
{
flag=0;
rou=ro;
who=i;
}
}
int who1=0,who2=0;
for(int i=1;i<=n;++i)
{
pair<int,int> P={a[i],b[i]};
int c1=mp[P].first,c2=mp[P].second;
int ro=calc(a[i],b[i],c1+c2);
if(ro>rou)
{
flag=1;
rou=ro;
who1=id[P].first;
who2=id[P].second;
}
P={b[i],c[i]};
c1=mp[P].first,c2=mp[P].second;
ro=calc(c[i],b[i],c1+c2);
if(ro>rou)
{
flag=1;
rou=ro;
who1=id[P].first;
who2=id[P].second;
}
P={a[i],c[i]};
c1=mp[P].first,c2=mp[P].second;
ro=calc(c[i],a[i],c1+c2);
if(ro>rou)
{
flag=1;
rou=ro;
who1=id[P].first;
who2=id[P].second;
}
}
print(flag);
puts("");
if(flag==0)
{
print(who);
puts("");
print(rou);
}
if(flag==1)
{
if(who1>who2)swap(who1,who2);
print(who1);
putchar(' ');
print(who2);
puts("");
print(rou);
}
}