#include #define For(i,a,b) for(int i=a;i<=b;++i) inline int max(int a,int b) { return a>b?a:b; } template inline void read(T& t) { t=0; bool f=false; char ch; while(ch=getchar(),!((ch>='0'&&ch<='9')||ch=='-')); if(ch=='-') f=true,ch=getchar(); t=ch-'0'; while(ch=getchar(),ch>='0'&&ch<='9') t=t*10+ch-'0'; if(f) t=-t; } template inline void read(T& t,Args&... args) { read(t); read(args...); } const int maxnm=1005; int n,m,a,b,c,d; int mp[maxnm][maxnm],s[maxnm][maxnm]; int MWR[maxnm][maxnm],MW[maxnm][maxnm]; int que[maxnm],head,tail; inline int SubSum(int r,int c,int rl,int cl) { return s[r][c]-s[r-rl][c]-s[r][c-cl]+s[r-rl][c-cl]; } int main() { #ifdef local freopen("pro.in","r",stdin); #endif read(n,m,a,b,c,d); For(i,1,n) For(j,1,m) read(mp[i][j]); For(i,1,n) For(j,1,m) s[i][j]=mp[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1]; For(i,c+1,n-1) { head=tail=0; For(j,d+1,b-2) { while(head