#include using namespace std; const int NMax = 37; int best = INFINITY; int v[NMax][NMax][NMax][NMax]; inline void Calculate(int a, int b, int c, int d, int n, int m, int o, int p){ int M = -INFINITY; for(int i = a; i < n + a; i++){ for(int j = b; j < m + b; j++){ for(int k = c; k < o + c; k++){ for(int l = d; l < p + d; l++){ M = max(v[i][j][k][l], M); } } } } best = min(M, best); } int main(){ #ifndef ONLINE_JUDGE freopen("a.in", "r", stdin); #endif // ONLINE_JUDGE int n, m, o, p, a, b, c, d; cin >> n >> m >> o >> p >> a >> b >> c >> d; for(int i = 1; i <= n; i++){ for(int j = 1; j <= m; j++){ for(int k = 1; k <= o; k++){ for(int l = 1; l <= p; l++){ cin >> v[i][j][k][l]; } } } } for(int i = 1; i <= n - a + 1; i++){ for(int j = 1; j <= m - b + 1; j++){ for(int k = 1; k <= o - c + 1; k++){ for(int l = 1; l <= p - d + 1; l++){ Calculate(i, j, k, l, a, b, c, d); } } } } cout << best; return 0; }