import           Data.Char                      ( isSpace )
import qualified Data.Vector.Unboxed           as V
import qualified Data.ByteString.Char8         as C

main = do
    [n, m] <- map read . words <$> getLine :: IO [Int]
    a      <- V.unfoldr (C.readInt . C.dropWhile isSpace) <$> C.getLine
    let a_tot = fromIntegral $ V.sum a :: Float
        ltborder = (>) (a_tot / fromIntegral (4 * m)) . fromIntegral
        count = V.length $ V.filter ltborder a
    putStrLn $ if count >= m then "Yes" else "No"
