#include<stdio.h>
#include<stdlib.h>
#define rep(i,n) for(int i = 0; i < (int)(n); i++)
#define rrep(ri,n) for(int ri = (int)(n-1); ri >= 0; ri--)
#define rep2(i,x,n) for(int i = (int)(x); i < (int)(n); i++)

#define MERGE_SIZE 100
typedef int MGDTIDF;
void merge_IDF(MGDTIDF d[], int l, int m, int r){
  static MGDTIDF tmp[MERGE_SIZE];
  int x = l, y = m+1;
  rep2(i, l, r+1){
    int index = -1;
    if((y == r+1) || (x < m+1 && (d[x] <= d[y]))){
      index = x;
      x++;
    }else{
      index = y;
      y++;
    }
    tmp[i] = d[index];
  }
  rep2(i, l, r+1){
    d[i] = tmp[i];
  }
}
void merge_sort_IDF(MGDTIDF d[], int l, int r){
  int m = (l+r)/2;
  if(l < m) merge_sort_IDF(d, l, m);
  if(m+1 < r) merge_sort_IDF(d, m+1, r);
  merge_IDF(d, l, m, r);
}

#define N 100
int main(void){
  int n, m;
  scanf("%d%d", &n, &m);
  int a[N];
  int sum = 0;
  rep(i, n){
    scanf("%d", &a[i]);
    sum += a[i];
  }
  merge_sort_IDF(a, 0, n-1);
  int co = 0;
  rrep(i, n){
    int now = a[i];
    if((double)now/sum < (double)1/(4*m)){
      printf("No\n");
      return 0;
    }
    co++;
    if(co == m) break;
  }
  printf("Yes\n");
  return 0;
}