link
# include <bits/stdc++.h>
using namespace std;
# define int long long
typedef pair< int , int > pii;
# define x first
# define y second
# define pb push_back
# define inf 1e18
# define IOS std:: ios:: sync_with_stdio ( false ) ; cin. tie ( 0 ) ; cout. tie ( 0 ) ;
# define fer ( i, a, b) for ( int i= a; i<= b; i++ )
# define der ( i, a, b) for ( int i= a; i>= b; i-- )
template < typename _T >
void read ( _T & x) {
_T f= 1 ; x= 0 ; char s= getchar ( ) ;
while ( s> '9' || s< '0' ) { if ( s== '-' ) f= - 1 ; s= getchar ( ) ; }
while ( '0' <= s&& s<= '9' ) { x= ( x<< 3 ) + ( x<< 1 ) + ( s^ 48 ) ; s= getchar ( ) ; }
x*= f;
}
template < typename _T >
void print ( _T x) { if ( x< 0 ) putchar ( '-' ) , print ( - x) ; if ( x> 9 ) print ( x/ 10 ) ; putchar ( x% 10 + '0' ) ; }
const int maxn= 1e5 + 10 ;
const int mod= 1e9 + 7 ;
int qmi ( int a, int b)
{ int res= 1 ; while ( b) { if ( b& 1 ) res= res* a% mod; a= a* a% mod; b>>= 1 ; } return res; }
const int N= 2e6 + 10 ;
int dr[ 4 ] [ 2 ] = { { - 1 , 0 } , { 1 , 0 } , { 0 , - 1 } , { 0 , 1 } } ;
int n, k;
int mi[ N] ;
int a[ N] ;
int pre[ N] ;
bool check ( int x)
{
fer ( i, 1 , n) mi[ i] = inf;
fer ( i, 1 , n)
{
pre[ i] = a[ i] >= x? 1 : - 1 ;
pre[ i] += pre[ i- 1 ] ;
mi[ i] = min ( pre[ i] , mi[ i- 1 ] ) ;
}
fer ( i, k, n) if ( pre[ i] - mi[ i- k] > 0 ) return true ;
return false ;
}
void solve ( )
{
cin>> n>> k;
fer ( i, 1 , n) cin>> a[ i] ;
int l= 0 , r= 200005 ;
while ( l< r)
{
int mid= ( l+ r+ 1 ) >> 1 ;
if ( check ( mid) ) l= mid;
else r= mid- 1 ;
}
cout<< l<< endl;
}
signed main ( )
{
IOS;
int _= 1 ;
while ( _-- ) solve ( ) ;
return 0 ;
}