public class Main{interface F{int f(int[][]x);}static F f=
x->{int i=0,j=x.length,k,m,M,p=0,P=0,r=0;for(;i<j;r=i++>0?(k=P<m?3:p>M?1:P==m?2:4)*r!=r*r?4:k:0,p=m,P=M)for(M=m=x[k=i][--j];k<=j;)for(int q:new int[]{x[i][k],x[j][k],x[k][i],x[k++][j]}){m=m<q?m:q;M=M<q?q:M;}return r;}
;public static void main
(String[]a
){ System.
out.
println("All should be concave (1):\n"+f.
f(new int[][]{{3,
3,
3},
{3,
1,
3},
{3,
3,
3}})+'\n'+f.
f(new int[][]{{2,
3,
4},
{5,
1,
6},
{7,
8,
9}})); z.println(f.f(new int[][] {{19, 34, 45}, {34, 12, 14}, {13, 13, 13}}));
z.println(f.f(new int[][] {{3, 4, 3, 4}, {4, 2, 1, 3}, {3, 1, 2, 4}, {4, 3, 4, 3}}));
z.println(f.f(new int[][] {{4, 5, 6, 4, 7}, {4, 3, 2, 2, 4}, {5, 2, 1, 3, 8}, {5, 3, 3, 2, 5}, {9, 5, 6, 4, 5}}));
z.println(f.f(new int[][] {{7, 7, 7, 7, 7}, {7, 6, 6, 6, 7}, {7, 6, 5, 6, 7}, {7, 6, 6, 6, 7}, {7, 7, 7, 7, 7}}));
z.println("All should be flat (2):");
z.println(f.f(new int[][] {{1, 1, 1}, {1, 1, 1}, {1, 1, 1}}));
z.println(f.f(new int[][] {{2, 2, 2}, {2, 2, 2}, {2, 2, 2}}));
z.println(f.f(new int[][] {{8, 8, 8}, {8, 8, 8}, {8, 8, 8}}));
z.println(f.f(new int[][] {{120, 120, 120}, {120, 120, 120}, {120, 120, 120}}));
z.println(f.f(new int[][] {{10, 10, 10, 10}, {10, 10, 10, 10}, {10, 10, 10, 10}, {10, 10, 10, 10}}));
z.println(f.f(new int[][] {{5, 5, 5, 5, 5, 5}, {5, 5, 5, 5, 5, 5}, {5, 5, 5, 5, 5, 5}, {5, 5, 5, 5, 5, 5}, {5, 5, 5, 5, 5, 5}, {5, 5, 5, 5, 5, 5}}));
z.println("All should be convex (3):");
z.println(f.f(new int[][] {{1, 2, 1}, {2, 6, 2}, {1, 2, 1}}));
z.println(f.f(new int[][] {{1, 1, 1}, {1, 2, 1}, {1, 1, 1}}));
z.println(f.f(new int[][] {{19, 34, 45}, {34, 76, 14}, {13, 6, 13}}));
z.println(f.f(new int[][] {{3, 3, 3, 3}, {3, 4, 4, 3}, {3, 4, 4, 3}, {3, 3, 3, 3}}));
z.println(f.f(new int[][] {{192, 19, 8, 6}, {48, 324, 434, 29}, {56, 292, 334, 8}, {3, 4, 23, 23}}));
z.println(f.f(new int[][] {{291, 48, 7, 5}, {47, 324, 454, 30}, {58, 292, 374, 4}, {9, 2, 53, 291}}));
z.println("All should be mixed (4):");
z.println(f.f(new int[][] {{1, 2, 3}, {4, 5, 9}, {6, 7, 8}}));
z.println(f.f(new int[][] {{10, 14, 21}, {100, 8, 3}, {29, 2, 19}}));
z.println(f.f(new int[][] {{5, 5, 5, 5}, {5, 4, 4, 5}, {5, 4, 6, 5}, {5, 5, 5, 5}}));
z.println(f.f(new int[][] {{3, 3, 3, 3}, {3, 1, 2, 3}, {3, 3, 2, 3}, {3, 3, 3, 3}}));
z.println(f.f(new int[][] {{12, 14, 15, 16}, {12, 18, 18, 16}, {12, 11, 11, 16}, {12, 14, 15, 16}}));
z.println(f.f(new int[][] {{5, 5, 5, 5, 5}, {5, 4, 4, 4, 5}, {5, 4, 6, 4, 5}, {5, 4, 4, 4, 5}, {5, 5, 5, 5, 5}}));}}
cHVibGljIGNsYXNzIE1haW57aW50ZXJmYWNlIEZ7aW50IGYoaW50W11bXXgpO31zdGF0aWMgRiBmPQoKeC0+e2ludCBpPTAsaj14Lmxlbmd0aCxrLG0sTSxwPTAsUD0wLHI9MDtmb3IoO2k8ajtyPWkrKz4wPyhrPVA8bT8zOnA+TT8xOlA9PW0/Mjo0KSpyIT1yKnI/NDprOjAscD1tLFA9TSlmb3IoTT1tPXhbaz1pXVstLWpdO2s8PWo7KWZvcihpbnQgcTpuZXcgaW50W117eFtpXVtrXSx4W2pdW2tdLHhba11baV0seFtrKytdW2pdfSl7bT1tPHE/bTpxO009TTxxP3E6TTt9cmV0dXJuIHI7fQoKO3B1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdYSl7CnZhciB6PVN5c3RlbS5vdXQ7ClN5c3RlbS5vdXQucHJpbnRsbigiQWxsIHNob3VsZCBiZSBjb25jYXZlICgxKTpcbiIrZi5mKG5ldyBpbnRbXVtde3szLDMsM30sezMsMSwzfSx7MywzLDN9fSkrJ1xuJytmLmYobmV3IGludFtdW117ezIsMyw0fSx7NSwxLDZ9LHs3LDgsOX19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3sxOSwgMzQsIDQ1fSwgezM0LCAxMiwgMTR9LCB7MTMsIDEzLCAxM319KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3szLCA0LCAzLCA0fSwgezQsIDIsIDEsIDN9LCB7MywgMSwgMiwgNH0sIHs0LCAzLCA0LCAzfX0pKTsKei5wcmludGxuKGYuZihuZXcgaW50W11bXSB7ezQsIDUsIDYsIDQsIDd9LCB7NCwgMywgMiwgMiwgNH0sIHs1LCAyLCAxLCAzLCA4fSwgezUsIDMsIDMsIDIsIDV9LCB7OSwgNSwgNiwgNCwgNX19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3s3LCA3LCA3LCA3LCA3fSwgezcsIDYsIDYsIDYsIDd9LCB7NywgNiwgNSwgNiwgN30sIHs3LCA2LCA2LCA2LCA3fSwgezcsIDcsIDcsIDcsIDd9fSkpOwp6LnByaW50bG4oIkFsbCBzaG91bGQgYmUgZmxhdCAoMik6Iik7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3sxLCAxLCAxfSwgezEsIDEsIDF9LCB7MSwgMSwgMX19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3syLCAyLCAyfSwgezIsIDIsIDJ9LCB7MiwgMiwgMn19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3s4LCA4LCA4fSwgezgsIDgsIDh9LCB7OCwgOCwgOH19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3sxMjAsIDEyMCwgMTIwfSwgezEyMCwgMTIwLCAxMjB9LCB7MTIwLCAxMjAsIDEyMH19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3sxMCwgMTAsIDEwLCAxMH0sIHsxMCwgMTAsIDEwLCAxMH0sIHsxMCwgMTAsIDEwLCAxMH0sIHsxMCwgMTAsIDEwLCAxMH19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3s1LCA1LCA1LCA1LCA1LCA1fSwgezUsIDUsIDUsIDUsIDUsIDV9LCB7NSwgNSwgNSwgNSwgNSwgNX0sIHs1LCA1LCA1LCA1LCA1LCA1fSwgezUsIDUsIDUsIDUsIDUsIDV9LCB7NSwgNSwgNSwgNSwgNSwgNX19KSk7CnoucHJpbnRsbigiQWxsIHNob3VsZCBiZSBjb252ZXggKDMpOiIpOwp6LnByaW50bG4oZi5mKG5ldyBpbnRbXVtdIHt7MSwgMiwgMX0sIHsyLCA2LCAyfSwgezEsIDIsIDF9fSkpOwp6LnByaW50bG4oZi5mKG5ldyBpbnRbXVtdIHt7MSwgMSwgMX0sIHsxLCAyLCAxfSwgezEsIDEsIDF9fSkpOwp6LnByaW50bG4oZi5mKG5ldyBpbnRbXVtdIHt7MTksIDM0LCA0NX0sIHszNCwgNzYsIDE0fSwgezEzLCA2LCAxM319KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3szLCAzLCAzLCAzfSwgezMsIDQsIDQsIDN9LCB7MywgNCwgNCwgM30sIHszLCAzLCAzLCAzfX0pKTsKei5wcmludGxuKGYuZihuZXcgaW50W11bXSB7ezE5MiwgMTksIDgsIDZ9LCB7NDgsIDMyNCwgNDM0LCAyOX0sIHs1NiwgMjkyLCAzMzQsIDh9LCB7MywgNCwgMjMsIDIzfX0pKTsKei5wcmludGxuKGYuZihuZXcgaW50W11bXSB7ezI5MSwgNDgsIDcsIDV9LCB7NDcsIDMyNCwgNDU0LCAzMH0sIHs1OCwgMjkyLCAzNzQsIDR9LCB7OSwgMiwgNTMsIDI5MX19KSk7CnoucHJpbnRsbigiQWxsIHNob3VsZCBiZSBtaXhlZCAoNCk6Iik7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3sxLCAyLCAzfSwgezQsIDUsIDl9LCB7NiwgNywgOH19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3sxMCwgMTQsIDIxfSwgezEwMCwgOCwgM30sIHsyOSwgMiwgMTl9fSkpOwp6LnByaW50bG4oZi5mKG5ldyBpbnRbXVtdIHt7NSwgNSwgNSwgNX0sIHs1LCA0LCA0LCA1fSwgezUsIDQsIDYsIDV9LCB7NSwgNSwgNSwgNX19KSk7CnoucHJpbnRsbihmLmYobmV3IGludFtdW10ge3szLCAzLCAzLCAzfSwgezMsIDEsIDIsIDN9LCB7MywgMywgMiwgM30sIHszLCAzLCAzLCAzfX0pKTsKei5wcmludGxuKGYuZihuZXcgaW50W11bXSB7ezEyLCAxNCwgMTUsIDE2fSwgezEyLCAxOCwgMTgsIDE2fSwgezEyLCAxMSwgMTEsIDE2fSwgezEyLCAxNCwgMTUsIDE2fX0pKTsKei5wcmludGxuKGYuZihuZXcgaW50W11bXSB7ezUsIDUsIDUsIDUsIDV9LCB7NSwgNCwgNCwgNCwgNX0sIHs1LCA0LCA2LCA0LCA1fSwgezUsIDQsIDQsIDQsIDV9LCB7NSwgNSwgNSwgNSwgNX19KSk7fX0=