#include<bits/stdc++.h>
using namespace std;
struct ac{
int id,maxid,maxsum,sum,x[505];
}a[505];
int pl1[505],pl2[505],c1,c2,flag[505];
bool cmp(ac b,ac c){return b.maxsum>c.maxsum;}
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
a[i].id=i;
for(int j=i+1;j<=n;j++){
scanf("%d",&a[i].x[j]);
a[j].x[i]=a[i].x[j];
a[i].sum+=a[i].x[j];
a[j].sum+=a[j].x[i];
if(a[i].x[j]>a[i].maxsum){
a[i].maxsum=a[i].x[j];
a[i].maxid=j;
}
if(a[j].x[i]>a[j].maxsum){
a[j].maxsum=a[j].x[i];
a[j].maxid=i;
}
}
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n/2;i++){
int k=1;
while(flag[a[k].id])k++;
k=a[k].id;
pl1[++c1]=k;
flag[k]=1;
int id,maxn;
for(int i=1;i<=c1;i++){
if(a[pl1[i]].maxsum>maxn){
if(flag[a[pl1[i]].maxid])continue;
maxn=a[pl1[i]].maxsum;
id=a[pl1[i]].maxid;
}
}
pl2[++c2]=id;
flag[id]=1;
}
int pl11,pl12,pl21,pl22,m1,m2;
for(int i=1;i<=n/2;i++){
for(int j=i+1;j<=n/2;j++){
if(a[i].x[j]>m1){
m1=a[i].x[j];
pl11=i;pl12=j;
}
}
}
for(int i=1;i<=n/2;i++){
for(int j=i+1;j<=n/2;j++){
if(a[i].x[j]>m2){
m2=a[i].x[j];
pl21=i;pl22=j;
}
}
}
int pl1s=a[pl11].x[pl12];
int pl2s=a[pl21].x[pl22];
if(pl1s<pl2s){printf("0");return 0;}
else{
printf("1\n%d",a[pl11].x[pl12]);
}
return 0;
}