#include <cstdio>
#include <vector>
#include <iostream>
using namespace std;
int jn,ans,ans2,ans3;
vector<int> v[1005];
struct J{
int a,b,c;
}j[500005];
int main(){
scanf("%d",&jn);
for(int i=0;i<jn;i++){
scanf("%d%d%d",&j[i].a,&j[i].b,&j[i].c);
if(j[i].a>j[i].b){
swap(j[i].a,j[i].b);
}
if(j[i].a>j[i].c){
swap(j[i].a,j[i].c);
}
if(j[i].b>j[i].c){
swap(j[i].b,j[i].c);
}
v[j[i].c].push_back(i);
if(ans<j[i].a){
ans=j[i].a;
ans2=i+1;
}
}
for(int i=0;i<jn;i++){
int c=j[i].c,len=v[c].size();
for(int k=0;k<len;k++){
if(v[c][k]!=i && j[v[c][k]].b==j[i].b){
if(ans<min(min(c+j[v[c][k]].a,j[i].b),j[i].c)){
ans=min(min(c+j[v[c][k]].a,j[i].b),j[i].c);
ans2=i+1;
ans3=v[c][k]+1;
}
}
}
}
ans=ans*ans*ans/4;
if(ans3==0){
printf("0\n%d\n%d",ans2,ans);
}else{
printf("1\n%d %d\n%d",min(ans2,ans3),max(ans2,ans3),ans);
}
return 0;
}