#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int N_kind = 0, M_item = 0;
    int *A_data;
    int temp_A, tmp;
    int num_vote_total = 0;
    double voder_line = 0;
    int err_flg = 0;       // エラーフラグ
                            // 0: エラーなし, 1:エラー 

    // 整数を入力
    scanf("%d%d", &N_kind, &M_item);
    A_data = (int *)malloc(N_kind * sizeof(int));  /* メモリ領域の確保 */

    for(int i = 0; i < N_kind; i++)
    {
        scanf("%d", &temp_A);
        A_data[i] = temp_A;
        num_vote_total += temp_A;
    }

    // 得票数が大きい順に並び替え
    for (int i = 0; i < N_kind; ++i) {
        for (int j = i+1; j < N_kind; ++j) {
            if (A_data[i] < A_data[j]) {
                tmp =  A_data[i];
                A_data[i] = A_data[j];
                A_data[j] = tmp;
            }
        }
    }

    // 境界値を導出
    voder_line = num_vote_total / (4 * M_item);

    // 全ての商品の得票数が条件を満たすか確認
    for(int k = 0; k < M_item; k++)
    {
        if(A_data[k] <= voder_line)
        {
            err_flg = 1;
        }
    }

    // 結果を表示
    if (err_flg != 0){
        printf("No");
    }
    else{
        printf("Yes");
    }

    // メモリの解放
    free(A_data);

    return 0;
}