WA on#9,#10.
#include <iostream>
#include <vector>
#include <set>
#include <math.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <time.h>
using namespace std;
#define inf 0x3f3f3f3f
#define minf 0x3f
#define inp(x) cin>>x
#define otp(x) cout<<x
#define otp_nl(x) cout<<x<<"\n"
#define otp_sp(x) cout<<x<<" "
#define int long long
#define veci vector<int>
#define str string
#define pb(x) push_back(x)
#define fr(k,len) for(k=0;k<len;k++)
#define nfr(k,len) for(int k=0;k<len;k++)
#define ret return
#define db long double
#define all(x) x.begin(),x.end()
namespace my_stl {
}
inline int read()
{
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
int qpow(int a, int t, int p) {
a %= p;
int b[64];
b[0] = a;
nfr(i, 63)b[i + 1] = (b[i] * b[i]) % p;
int ans = 1;
nfr(i, 64) {
if (t & (1 << i)) {
ans *= b[i];
ans %= p;
}
}
ret ans;
}
int gcd(int a, int b) {
ret (b ? (gcd(b, a % b)) : a);
}
int invp(int a, int p) {
ret qpow(a, p - 2, p);
}
int x, y;
void exgcd(int a, int b, bool f) {
if (f)
x = 0, y = 0;
if (!b) {
x = 1;
y = 0;
return;
}
exgcd(b, a % b, false);
int tx = x;
x = y;
y = tx - a / b * y;
}
int inv(int a, int p) {
exgcd(a, p, true);
return (x + p) % p;
}
set<pair<int,int> > ms[1000005];
int mx;
pair<int,int> mp;
void solve() {
int n;
cin>>n;
nfr(i,n){
int x,y,z;
cin>>x>>y>>z;
int dx,dy,dz;
dy=x+y+z-min(x,min(y,z))-max(x,max(y,z));
dx=x+y+z-dy-max(x,max(y,z));
dz=x+y+z-dy-min(x,min(y,z));
x=dx,y=dy,z=dz;
if(mx<dx){
mx=dx;
mp=make_pair(i+1,0);
}
ms[dy*1000+dz].insert(make_pair(dx,i+1));
}
for(int i=0;i<1000005;i++){
if(ms[i].size()>1){
pair<int,int> d1=*ms[i].begin();
ms[i].erase(d1);
pair<int,int> d2=*ms[i].begin();
if(min(d1.first+d2.first,i/1000)>mx){
mx=min(d1.first+d2.first,i/1000);
mp=make_pair(d1.second,d2.second);
}
}
}
if(!mp.second){
cout<<"0\n";
cout<<mp.first<<endl;
cout<<mx*mx*mx/4;
}else{
cout<<"1\n";
if(mp.first>mp.second)swap(mp.first,mp.second);
cout<<mp.first<<' '<<mp.second<<endl;
cout<<mx*mx*mx/4;
}
ret;
}
signed main() {
int t = 1;
nfr(i, t) {
solve();
}
ret 0;
}