#include <bits/stdc++.h>
using namespace std;
int st1[1005][1005][12];
int st2[1005][1005][12];
int ma(int i,int j,int n){
int s=0;
for(int i1=i;i1<i+n;i1++){
int l=j;
int r=j+n-1;
int k=log2(r-l+1);
s=max(s,max(st2[i1][l][k],st2[i1][r-(1<<k)+1][k]));
}
return s;
}
int mi(int i,int j,int n){
int s=1e9;
for(int i1=i;i1<i+n;i1++){
int l=j;
int r=j+n-1;
int k=log2(r-l+1);
s=min(s,min(st1[i1][l][k],st1[i1][r-(1<<k)+1][k]));
}
return s;
}
int main(){
int a,b,n;
cin>>a>>b>>n;
for(int i=1;i<=a;i++){
for(int j=1;j<=b;j++){
scanf("%d",&st1[i][j][0]);
st2[i][j][0]=st1[i][j][0];
}
}
for(int i=1;i<=a;i++){
for(int j=1;j<=10;j++){
for(int z=1;z+(1<<(j))-1<=b;z++){
st1[i][z][j]=min(st1[i][z][j-1],st1[i][z+(1<<(j-1))][j-1]);
}
}
}
for(int i=1;i<=a;i++){
for(int j=1;j<=10;j++){
for(int z=1;z+(1<<(j))-1<=b;z++){
st2[i][z][j]=max(st1[i][z][j-1],st1[i][z+(1<<(j-1))][j-1]);
}
}
}
int s=1e9;
for(int i=1;i<=a-n+1;i++){
for(int j=1;j<=b-n+1;j++){
int l=j;
int r=j+n-1;
int k=log2(r-l+1);
s=min(s,ma(i,j,n)-mi(i,j,n));
}
}
cout<<s<<endl;
return 0;
}