#include <assert.h>
#include <stdio.h>

#define MED(x,y,z) (x < y ? (y < z ? y : z < x ? x : z) : (x < z ? x : y < z ? z : y))

void sort(int arr[], int desc, int left, int right) {
  if (left >= right) return;
  int i = left, j = right;
  int tmp, pivot = MED(arr[i], arr[i + (j - i) / 2], arr[j]), order = desc ? -1 : 1;
  while (1) {
    while (arr[i] * order < pivot * order) i++;
    while (arr[j] * order > pivot * order) j--;
    if (i >= j) break;
    tmp = arr[i];
    arr[i] = arr[j];
    arr[j] = tmp;
    i++;
    j--;
  }
  sort(arr, desc, left, i - 1);
  sort(arr, desc, j + 1, right);
}

int main() {
  int n, m, a[100], r = 1, sum = 0, min;
  assert(scanf("%d %d", &n, &m) == 2);
  for (int i = 0; i < n; i++) {
    assert(scanf("%d", &a[i]) == 1);
    sum += a[i];
  }
  min = (sum + 4 * m - 1) / (4 * m);
  sort(a, 1, 0, n - 1);
  for (int i = 0; i < m; i++) {
    if (a[i] < min) {
      r = 0;
      break;
    }
  }
  puts(r ? "Yes" : "No");
}
