/* */ //#pragma comment(linker, "/STACK:16777216") #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define y0 sdkfaslhagaklsldk #define y1 aasdfasdfasdf #define yn askfhwqriuperikldjk #define j1 assdgsdgasghsf #define tm sdfjahlfasfh #define lr asgasgash #define norm asdfasdgasdgsd #define eps 1e-9 #define M_PI 3.141592653589793 #define bs 1000000007 #define bsize 256 using namespace std; const int INF = 1e9; const int N = 38; int n, m, k, l, a, b, c, d, dp[N][N][N][N], ar[N][N][N][N]; int ans; int main(){ //freopen("fabro.in","r",stdin); //freopen("fabro.out","w",stdout); //freopen("F:/in.txt", "r", stdin); //freopen("F:/output.txt", "w", stdout); ios_base::sync_with_stdio(0); //cin.tie(0); cin >> n >> m >> k >> l; cin >> a >> b >> c >> d; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { cin >> ar[i][j][q][w]; } } } } // by n for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { if (i < a) { dp[i][j][q][w] = 1e9; } else { dp[i][j][q][w] = ar[i][j][q][w]; for (int e = i; e>i - a; e--) dp[i][j][q][w] = max(dp[i][j][q][w], ar[e][j][q][w]); } } } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { ar[i][j][q][w] = dp[i][j][q][w]; } } } } //by m for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { if (j < b) { dp[i][j][q][w] = 1e9; } else { dp[i][j][q][w] = ar[i][j][q][w]; for (int e = j; e>j - b; e--) dp[i][j][q][w] = max(dp[i][j][q][w], ar[i][e][q][w]); } } } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { ar[i][j][q][w] = dp[i][j][q][w]; } } } } // by k for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { if (qq - c; e--) dp[i][j][q][w] = max(dp[i][j][q][w], ar[i][j][e][w]); } } } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { ar[i][j][q][w] = dp[i][j][q][w]; } } } } // by L for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { if (ww - d; e--) dp[i][j][q][w] = max(dp[i][j][q][w], ar[i][j][q][e]); } } } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { ar[i][j][q][w] = dp[i][j][q][w]; } } } } ans = 1e9; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int q = 1; q <= k; q++) { for (int w = 1; w <= l; w++) { ans = min(ans, ar[i][j][q][w]); } } } } cout << ans << endl; cin.get(); cin.get(); return 0; }