import Control.Applicative
import Control.Monad
import Data.ByteString.Char8 (ByteString)
import qualified Data.ByteString.Char8 as B
import Data.List
import Data.Char (isSpace)
import Data.Vector (Vector, (!), (//))
import qualified Data.Vector as V
import Data.Vector.Mutable (IOVector, STVector)
import qualified Data.Vector.Mutable as VM

main :: IO ()
main = do
  [n, k] <- g
  v <- f
  solve n k v
  where
    f = readiv B.readInt <$> B.getLine
    g = map read <$> words <$> getLine

solve :: Int -> Int -> Vector Int -> IO ()
solve n k v = do
  mv <- V.thaw v
  forM_ [k .. n-1] $ \i -> do
    x <- VM.read mv (i - k)
    y <- VM.read mv i
    putStrLn $ if x < y then "Yes" else "No"

readiv :: Integral a =>  (ByteString -> Maybe (a, ByteString)) -> ByteString -> Vector a
readiv f = V.unfoldr $ \s -> do
  (n, s') <- f s
  return (n, B.dropWhile isSpace s')
