#include <bits/stdc++.h>
using namespace std;
int v, l, c, fc, fl;
long long sp;
int main()
{
ifstream fin(“iluminat.in”);
ofstream fout(“iluminat.out”);
long long n, cer, k, a, b, p, s=0, max=0;
fin>>cer>>n>>k;
if(cer==1)
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
fin>>v[i][j];
l[v[i][j]]=i;c[v[i][j]]=j;
}
}
for(int i=n*n; i>=1; i—)
{
a=l[i];b=c[i];
if(fl[a]==0 && fc[b]==0)
{
k—;
fl[a]=1;fc[b]=1;
}
if(k==0)
{
fout<<i;
return 0;
}
}
}
else if(cer==2)
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
fin>>v[i][j];
l[v[i][j]]=i;c[v[i][j]]=j;
}
}
for(int i=n*n; i>=1; i—)
{
a=l[i];b=c[i];
if(fl[a]==0 && fc[b]==0)
{
k—;
if(!k)
{p=i;break;}
fl[a]=1;fc[b]=1;
}
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(v[i][j]==p)
{
for(int x=i; x>=1; x—)
{
if(fl[x]==0 && fc[j]==0)
s+=v[x][j];
}
for(int x=i; x<=n; x++)
{
if(fl[x]==0 && fc[j]==0)
s+=v[x][j];
}
for(int x=j; x>=1; x—)
{
if(fl[i]==0 && fc[x]==0)
s+=v[i][x];
}
for(int x=j; x<=n; x++)
{
if(fl[i]==0 && fc[x]==0)
s+=v[i][x];
}
fout<<s-3*p;
return 0;
}
}
}
}
else
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
fin>>a;
sp[i][j]=sp[i][j-1]+a;
}
}
for(int i=1; i<=n-k+1; i++)
{
for(int j=k; j<=n; j++)
{
s=0;
for(int x=i; x<=i+k-1; x++)
s=s+sp[x][j]-sp[x][j-k];
if(s>max)
max=s;
}
}
fout<<max;
}
return 0;
}