1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 typedef double db;
5 #define INF 0x3f3f3f3f
6 #define _for(i,a,b) for(int i = (a);i < b;i ++)
7 #define _rep(i,a,b) for(int i = (a);i > b;i --)
8
9 inline ll read()
10 {
11 ll ans = 0;
12 char ch = getchar(), last = ' ';
13 while(!isdigit(ch)) last = ch, ch = getchar();
14 while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - '0', ch = getchar();
15 if(last == '-') ans = -ans;
16 return ans;
17 }
18 inline void write(ll x)
19 {
20 if(x < 0) x = -x, putchar('-');
21 if(x >= 10) write(x / 10);
22 putchar(x % 10 + '0');
23 }
24 int n;
25 int a[503][503];
26 int main()
27 {
28 n = read();
29 _for(i,1,n+1)
30 _for(j,1,n+1)
31 if(i == j)
32 a[i][j] = -1;
33 else if(i < j)
34 a[i][j] = read();
35 else
36 a[i][j] = a[j][i];
37
38 int rnt = 0;
39 priority_queue<int> pq;
40 _for(i,1,n+1)
41 {
42 while(!pq.empty())
43 pq.pop();
44 _for(j,1,n+1)
45 {
46 if(pq.size()<2)
47 {
48 pq.push(a[i][j]);
49 continue;
50 }
51 else if(a[i][j]>pq.top())
52 {
53 int t1 = pq.top();
54 pq.pop();pq.pop();
55 pq.push(a[i][j]);
56 pq.push(t1);
57 continue;
58 }
59 int tmp = pq.top();
60 pq.pop();
61 if(a[i][j]>pq.top())
62 {
63 pq.pop();
64 pq.push(a[i][j]);
65 }
66 pq.push(tmp);
67 }
68 pq.pop();
69 rnt = max(rnt,pq.top());
70 }
71 printf("1\n%d",rnt);
72 return 0;
73 }