#include "quality.h"
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define endl '\n'
using namespace std;
using namespace __gnu_pbds;
template<class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
int rectangle(int r, int c, int h, int w, int q[3001][3001])
{
int minc=1e9;
for(int i=h-1;i<r;i++)
{
ordered_set<int> s;
for(int i1=i;i1>=i-h+1;i1--)
{
for(int j1=0;j1<w;j1++) s.insert(q[i1][j1]);
}
minc=min(minc,*s.find_by_order(s.size()/2));
for(int j=w;j<c;j++)
{
for(int i1=i;i1>i-h;i1--)
{
s.insert(q[i1][j]);
s.erase(q[i1][j-w]);
}
minc=min(minc,*s.find_by_order(s.size()/2));
}
}
return minc;
}