#include using namespace std; #define dbg(x) (cout<<#x<<" = "<<(x)<<'\n') typedef long long int lld; const int INF = (1LL << 30) - 1; const lld LINF = (1LL << 62) - 1; int N, M, K, L; int A, B, C, D; int V[40][40][40][40]; int P[40][40]; int Q[40][40][40]; int R[40][40][40][40]; deque> DQ; int sol = INF; int main() { cin.sync_with_stdio(false); #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif scanf("%d%d%d%d", &N, &M, &K, &L); scanf("%d%d%d%d", &A, &B, &C, &D); for (int i = 1; i <= N; i++) for (int j = 1; j <= M; j++) for (int k = 1; k <= K; k++) for (int l = 1; l <= L; l++) scanf("%d", &V[i][j][k][l]); for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { for (int k = 1; k <= K; k++) { DQ.clear(); for (int l = 1; l <= L; l++) { while (!DQ.empty() && DQ.front().second <= l - D) DQ.pop_front(); while (!DQ.empty() && DQ.back().first <= V[i][j][k][l]) DQ.pop_back(); DQ.push_back({V[i][j][k][l], l}); if (l >= D) P[k][l - D + 1] = DQ.front().first; } } for (int l = 1; l <= L - D + 1; l++) { DQ.clear(); for (int k = 1; k <= K; k++) { while (!DQ.empty() && DQ.front().second <= k - C) DQ.pop_front(); while (!DQ.empty() && DQ.back().first <= P[k][l]) DQ.pop_back(); DQ.push_back({P[k][l], k}); if (k >= C) Q[j][k - C + 1][l] = DQ.front().first; } } } for (int k = 1; k <= K - C + 1; k++) { for (int l = 1; l <= L - D + 1; l++) { DQ.clear(); for (int j = 1; j <= M; j++) { while (!DQ.empty() && DQ.front().second <= j - B) DQ.pop_front(); while (!DQ.empty() && DQ.back().first <= Q[j][k][l]) DQ.pop_back(); DQ.push_back({Q[j][k][l], j}); if (j >= B) R[i][j - B + 1][k][l] = DQ.front().first; } } } } for (int j = 1; j <= M - B + 1; j++) { for (int k = 1; k <= K - C + 1; k++) { for (int l = 1; l <= L - D + 1; l++) { DQ.clear(); for (int i = 1; i <= N; i++) { while (!DQ.empty() && DQ.front().second <= i - A) DQ.pop_front(); while (!DQ.empty() && DQ.back().first <= R[i][j][k][l]) DQ.pop_back(); DQ.push_back({R[i][j][k][l], i}); if (i >= A) sol = min(sol, DQ.front().first); } } } } printf("%d\n", sol); return 0; }