import           Data.List                      ( sort
                                                , splitAt
                                                )

minimumVotes :: Int -> Int -> Int
minimumVotes allVotes m = allVotes `div` (4 * m)

main = do
    s <- getLine
    let (n : m : _) = map read $ words s :: [Int]

    votes' <- getLine
    let votes            = map read $ words votes' :: [Int]

    let sortedVotes      = reverse . sort $ votes
    let (targetVotes, _) = splitAt m sortedVotes

    let result' =
            flip map targetVotes $ (\vote -> vote >= minimumVotes (sum votes) m)
    let result = all id result'


    case result of
        True  -> putStrLn "Yes"
        False -> putStrLn "No"
