TLE 90pts
#include<bits/stdc++.h>
#define sc(a) scanf("%lld",&a)
#define ps(a) printf("%lld ",a)
#define pn(a) printf("%lld\n",a)
using namespace std;
typedef long long ll;
#define FOR(i,a,b) for(ll i=a;i<=b;i++)
#define ROF(i,a,b) for(ll i=a;i>=b;i--)
const ll N=1e5+7;
ll n,a,b,c,ans1=-99999999999999,ans2=-999999999999999,id1,id2,id3,opt;
map<pair<ll,ll>,pair<ll,ll> >m;
inline ll Min(ll a,ll b,ll c){
return min(a,min(b,c));
}
int main(){
sc(n);
FOR(i,1,n){
sc(a),sc(b),sc(c);
if(m.find(make_pair(a,b))!=m.end()){
if(ans2<ll(floor(1/4.0*Min(a,b,c+m[make_pair(a,b)].first)*Min(a,b,c+m[make_pair(a,b)].first)*Min(a,b,c+m[make_pair(a,b)].first)))) ans2=ll(floor(1/4.0*Min(a,b,c+m[make_pair(a,b)].first)*Min(a,b,c+m[make_pair(a,b)].first)*Min(a,b,c+m[make_pair(a,b)].first))),id2=m[make_pair(a,b)].second,id3=i;
}
if(m.find(make_pair(b,c))!=m.end()){
if(ans2<ll(floor(1/4.0*Min(a+m[make_pair(b,c)].first,b,c)*Min(a+m[make_pair(b,c)].first,b,c)*Min(a+m[make_pair(b,c)].first,b,c)))) ans2=ll(floor(1/4.0*Min(a+m[make_pair(b,c)].first,b,c)*Min(a+m[make_pair(b,c)].first,b,c)*Min(a+m[make_pair(b,c)].first,b,c))),id2=m[make_pair(b,c)].second,id3=i;
}
if(m.find(make_pair(a,c))!=m.end()){
if(ans2<ll(floor(1/4.0*Min(a,b+m[make_pair(a,c)].first,c)*Min(a,b+m[make_pair(a,c)].first,c)*Min(a,b+m[make_pair(a,c)].first,c)))) ans2=ll(floor(1/4.0*Min(a,b+m[make_pair(a,c)].first,c)*Min(a,b+m[make_pair(a,c)].first,c)*Min(a,b+m[make_pair(a,c)].first,c))),id2=m[make_pair(a,c)].second,id3=i;
}
if(m[make_pair(a,b)].first<c) m[make_pair(a,b)]=make_pair(c,i);
if(m[make_pair(a,c)].first<b) m[make_pair(a,c)]=make_pair(b,i);
if(m[make_pair(b,c)].first<a) m[make_pair(b,c)]=make_pair(a,i);
if(m[make_pair(b,a)].first<c) m[make_pair(b,a)]=make_pair(c,i);
if(m[make_pair(c,a)].first<b) m[make_pair(c,a)]=make_pair(b,i);
if(m[make_pair(c,b)].first<a) m[make_pair(c,b)]=make_pair(a,i);
if(ans1<ll(floor(1/4.0*Min(a,b,c)*Min(a,b,c)*Min(a,b,c)))){
ans1=ll(floor(1/4.0*Min(a,b,c)*Min(a,b,c)*Min(a,b,c)));
id1=i;
}
}
if(ans1>=ans2){
cout<<0ll<<endl<<id1<<endl<<ans1<<endl;
}
else{
cout<<1ll<<endl<<id2<<" "<<id3<<endl<<ans2<<endl;
}
return 0;
}
/*
4
1 6 6
2 6 6
0 6 6
3 6 6
*/