//NiceDuck
#include "bits/stdc++.h"
typedef long long ll;
using namespace std;
#define FILE "000"
#define foru(i,a,b) for(int i=(int)(a); i<=(int)(b); ++i)
#define ford(i,a,b) for(int i=(int)(a); i>=(int)(b); --i)
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);
#define pb push_back
#define fi first
#define se second
#define pii pair<int,int>
#define pil pair<int,ll>
#define pli pair<ll,int>
#define MOD 1000000007
#define el "\n"
#define MAX 10004
int n;
struct Stone
{
int len,wid,hei,id;
};
vector<Stone> stones;
bool cmp(const Stone &x, const Stone &y)
{
return x.len>y.len || x.len==y.len && x.wid>y.wid;
}
int trace[2*MAX],f[2*MAX];
void calc()
{
memset(trace,-1,sizeof(trace));
int ans=0,idx=-1;
foru(i,0,stones.size()-1)
{
f[i]=stones[i].hei;
foru(j,0,i-1)
{
if(stones[j].len>=stones[i].len && stones[j].wid>=stones[i].wid)
{
if(f[i]<f[j]+stones[i].hei)
{
f[i]=f[j]+stones[i].hei;
trace[i]=j;
}
}
}
if(ans<f[i])
{
ans=f[i];
idx=i;
}
}
cout<<ans<<el;
vector<Stone> v;
while(idx!=-1)
{
v.pb(stones[idx]);
idx=trace[idx];
}
cout<<(int)v.size()<<el;
bool change=false;
ford(i,v.size()-1,0)
{
cout<<v[i].id<<' '<<min(v[i].wid,v[i].len)<<' '<<max(v[i].wid,v[i].len)<<' '<<v[i].hei<<el;
}
}
int main()
{
fastio
#ifndef ONLINE_JUDGE
freopen(FILE ".inp","r",stdin);
freopen(FILE ".out","w",stdout);
#endif // ONLINE_JUDGE
cin>>n;
foru(i,1,n)
{
int a,b,c; cin>>a>>b>>c;
if(a<=b && a<=c) swap(a,c); // a=min(a,b,c)
if(b<=a && b<=c) swap(b,c); // b=min(a,b,c)
stones.pb({a,b,c,i});
if(a!=b) stones.pb({b,a,c,i});
}
sort(stones.begin(),stones.end(),cmp);
calc();
return 0;
}
Ly9OaWNlRHVjawojaW5jbHVkZSAiYml0cy9zdGRjKysuaCIKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRklMRSAiMDAwIgojZGVmaW5lIGZvcnUoaSxhLGIpIGZvcihpbnQgaT0oaW50KShhKTsgaTw9KGludCkoYik7ICsraSkKI2RlZmluZSBmb3JkKGksYSxiKSBmb3IoaW50IGk9KGludCkoYSk7IGk+PShpbnQpKGIpOyAtLWkpCiNkZWZpbmUgZmFzdGlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTsKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgcGlsIHBhaXI8aW50LGxsPgojZGVmaW5lIHBsaSBwYWlyPGxsLGludD4KI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBNQVggMTAwMDQKCmludCBuOwpzdHJ1Y3QgU3RvbmUKewogICAgaW50IGxlbix3aWQsaGVpLGlkOwp9Owp2ZWN0b3I8U3RvbmU+IHN0b25lczsKCmJvb2wgY21wKGNvbnN0IFN0b25lICZ4LCBjb25zdCBTdG9uZSAmeSkKewogICAgcmV0dXJuIHgubGVuPnkubGVuIHx8IHgubGVuPT15LmxlbiAmJiB4LndpZD55LndpZDsKfQoKaW50IHRyYWNlWzIqTUFYXSxmWzIqTUFYXTsKdm9pZCBjYWxjKCkKewogICAgbWVtc2V0KHRyYWNlLC0xLHNpemVvZih0cmFjZSkpOwogICAgaW50IGFucz0wLGlkeD0tMTsKICAgIGZvcnUoaSwwLHN0b25lcy5zaXplKCktMSkKICAgIHsKICAgICAgICBmW2ldPXN0b25lc1tpXS5oZWk7CiAgICAgICAgZm9ydShqLDAsaS0xKQogICAgICAgIHsKICAgICAgICAgICAgaWYoc3RvbmVzW2pdLmxlbj49c3RvbmVzW2ldLmxlbiAmJiBzdG9uZXNbal0ud2lkPj1zdG9uZXNbaV0ud2lkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihmW2ldPGZbal0rc3RvbmVzW2ldLmhlaSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBmW2ldPWZbal0rc3RvbmVzW2ldLmhlaTsKICAgICAgICAgICAgICAgICAgICB0cmFjZVtpXT1qOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKGFuczxmW2ldKQogICAgICAgIHsKICAgICAgICAgICAgYW5zPWZbaV07CiAgICAgICAgICAgIGlkeD1pOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGFuczw8ZWw7CiAgICB2ZWN0b3I8U3RvbmU+IHY7CiAgICB3aGlsZShpZHghPS0xKQogICAgewogICAgICAgIHYucGIoc3RvbmVzW2lkeF0pOwogICAgICAgIGlkeD10cmFjZVtpZHhdOwogICAgfQogICAgY291dDw8KGludCl2LnNpemUoKTw8ZWw7CiAgICBib29sIGNoYW5nZT1mYWxzZTsKICAgIGZvcmQoaSx2LnNpemUoKS0xLDApCiAgICB7CiAgICAgICAgY291dDw8dltpXS5pZDw8JyAnPDxtaW4odltpXS53aWQsdltpXS5sZW4pPDwnICc8PG1heCh2W2ldLndpZCx2W2ldLmxlbik8PCcgJzw8dltpXS5oZWk8PGVsOwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGZhc3RpbwogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oRklMRSAiLmlucCIsInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oRklMRSAiLm91dCIsInciLHN0ZG91dCk7CiAgICAjZW5kaWYgLy8gT05MSU5FX0pVREdFCiAgICAKICAgIGNpbj4+bjsKICAgIGZvcnUoaSwxLG4pCiAgICB7CiAgICAgICAgaW50IGEsYixjOyBjaW4+PmE+PmI+PmM7CiAgICAgICAgaWYoYTw9YiAmJiBhPD1jKSBzd2FwKGEsYyk7IC8vIGE9bWluKGEsYixjKQogICAgICAgIGlmKGI8PWEgJiYgYjw9Yykgc3dhcChiLGMpOyAvLyBiPW1pbihhLGIsYykKICAgICAgICBzdG9uZXMucGIoe2EsYixjLGl9KTsgCiAgICAgICAgaWYoYSE9Yikgc3RvbmVzLnBiKHtiLGEsYyxpfSk7CiAgICB9CiAgICBzb3J0KHN0b25lcy5iZWdpbigpLHN0b25lcy5lbmQoKSxjbXApOwogICAgY2FsYygpOwogICAgCiAgICByZXR1cm4gMDsKfQo=