import java.util.*;

class Main{
	static void merge(int arr[], int l, int m, int r) 
    { 
        // Find sizes of two subarrays to be merged 
        int n1 = m - l + 1; 
        int n2 = r - m; 
  
        /* Create temp arrays */
        int L[] = new int [n1]; 
        int R[] = new int [n2]; 
  
        /*Copy data to temp arrays*/
        for (int i=0; i<n1; ++i) 
            L[i] = arr[l + i]; 
        for (int j=0; j<n2; ++j) 
            R[j] = arr[m + 1+ j]; 
  
        /* Merge the temp arrays */
  
        // Initial indexes of first and second subarrays 
        int i = 0, j = 0; 
  
        // Initial index of merged subarry array 
        int k = l; 
        while (i < n1 && j < n2) 
        { 
            if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } 
            k++; 
        } 
  
        /* Copy remaining elements of L[] if any */
        while (i < n1) 
        { 
            arr[k] = L[i]; 
            i++; 
            k++; 
        } 
  
        /* Copy remaining elements of R[] if any */
        while (j < n2) 
        { 
            arr[k] = R[j]; 
            j++; 
            k++; 
        } 
    } 
  
    // Main function that sorts arr[l..r] using 
    // merge() 
    static void sort(int arr[], int l, int r) 
    { 
        if (l < r) 
        { 
            // Find the middle point 
            int m = (l+r)/2; 
  
            // Sort first and second halves 
            sort(arr, l, m); 
            sort(arr , m+1, r); 
  
            // Merge the sorted halves 
            merge(arr, l, m, r); 
        } 
    } 

	public static void main(String args[]){
		Scanner scanner = new Scanner(System.in);
		int n,m;
		n = scanner.nextInt();
		m = scanner.nextInt();
		int polls[] = new int[n];
		int totalPoll = 0;
		boolean printed = false;
		for(int i = 0; i < n; i++){
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		}
		double threshHold = (1.0 / (4.0 * (double) m));
		sort(polls, 0, polls.length-1);
		for(int i = 0; i < m; i++){
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		}

		if(!printed){
			System.out.println("Yes");
		}
	}
} import java.util.*; util.* java class Main{
	static void merge(int arr[], int l, int m, int r) 
    { 
        // Find sizes of two subarrays to be merged 
        int n1 = m - l + 1; 
        int n2 = r - m; 
  
        /* Create temp arrays */
        int L[] = new int [n1]; 
        int R[] = new int [n2]; 
  
        /*Copy data to temp arrays*/
        for (int i=0; i<n1; ++i) 
            L[i] = arr[l + i]; 
        for (int j=0; j<n2; ++j) 
            R[j] = arr[m + 1+ j]; 
  
        /* Merge the temp arrays */
  
        // Initial indexes of first and second subarrays 
        int i = 0, j = 0; 
  
        // Initial index of merged subarry array 
        int k = l; 
        while (i < n1 && j < n2) 
        { 
            if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } 
            k++; 
        } 
  
        /* Copy remaining elements of L[] if any */
        while (i < n1) 
        { 
            arr[k] = L[i]; 
            i++; 
            k++; 
        } 
  
        /* Copy remaining elements of R[] if any */
        while (j < n2) 
        { 
            arr[k] = R[j]; 
            j++; 
            k++; 
        } 
    } 
  
    // Main function that sorts arr[l..r] using 
    // merge() 
    static void sort(int arr[], int l, int r) 
    { 
        if (l < r) 
        { 
            // Find the middle point 
            int m = (l+r)/2; 
  
            // Sort first and second halves 
            sort(arr, l, m); 
            sort(arr , m+1, r); 
  
            // Merge the sorted halves 
            merge(arr, l, m, r); 
        } 
    } 

	public static void main(String args[]){
		Scanner scanner = new Scanner(System.in);
		int n,m;
		n = scanner.nextInt();
		m = scanner.nextInt();
		int polls[] = new int[n];
		int totalPoll = 0;
		boolean printed = false;
		for(int i = 0; i < n; i++){
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		}
		double threshHold = (1.0 / (4.0 * (double) m));
		sort(polls, 0, polls.length-1);
		for(int i = 0; i < m; i++){
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		}

		if(!printed){
			System.out.println("Yes");
		}
	}
} Main static void merge(int arr[], int l, int m, int r) 
    { 
        // Find sizes of two subarrays to be merged 
        int n1 = m - l + 1; 
        int n2 = r - m; 
  
        /* Create temp arrays */
        int L[] = new int [n1]; 
        int R[] = new int [n2]; 
  
        /*Copy data to temp arrays*/
        for (int i=0; i<n1; ++i) 
            L[i] = arr[l + i]; 
        for (int j=0; j<n2; ++j) 
            R[j] = arr[m + 1+ j]; 
  
        /* Merge the temp arrays */
  
        // Initial indexes of first and second subarrays 
        int i = 0, j = 0; 
  
        // Initial index of merged subarry array 
        int k = l; 
        while (i < n1 && j < n2) 
        { 
            if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } 
            k++; 
        } 
  
        /* Copy remaining elements of L[] if any */
        while (i < n1) 
        { 
            arr[k] = L[i]; 
            i++; 
            k++; 
        } 
  
        /* Copy remaining elements of R[] if any */
        while (j < n2) 
        { 
            arr[k] = R[j]; 
            j++; 
            k++; 
        } 
    } merge { 
        // Find sizes of two subarrays to be merged 
        int n1 = m - l + 1; 
        int n2 = r - m; 
  
        /* Create temp arrays */
        int L[] = new int [n1]; 
        int R[] = new int [n2]; 
  
        /*Copy data to temp arrays*/
        for (int i=0; i<n1; ++i) 
            L[i] = arr[l + i]; 
        for (int j=0; j<n2; ++j) 
            R[j] = arr[m + 1+ j]; 
  
        /* Merge the temp arrays */
  
        // Initial indexes of first and second subarrays 
        int i = 0, j = 0; 
  
        // Initial index of merged subarry array 
        int k = l; 
        while (i < n1 && j < n2) 
        { 
            if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } 
            k++; 
        } 
  
        /* Copy remaining elements of L[] if any */
        while (i < n1) 
        { 
            arr[k] = L[i]; 
            i++; 
            k++; 
        } 
  
        /* Copy remaining elements of R[] if any */
        while (j < n2) 
        { 
            arr[k] = R[j]; 
            j++; 
            k++; 
        } 
    } int n1 = m - l + 1; n1 m - l + 1 m - l m l 1 int n2 = r - m; n2 r - m r m int L[] = new int [n1]; L new int [n1] n1 int R[] = new int [n2]; R new int [n2] n2 for (int i=0; i<n1; ++i) 
            L[i] = arr[l + i]; int i=0; int i=0; i 0 i<n1 i n1 ++i ++i i L[i] = arr[l + i]; L[i] = arr[l + i] L[i] L i arr[l + i] arr l + i l i for (int j=0; j<n2; ++j) 
            R[j] = arr[m + 1+ j]; int j=0; int j=0; j 0 j<n2 j n2 ++j ++j j R[j] = arr[m + 1+ j]; R[j] = arr[m + 1+ j] R[j] R j arr[m + 1+ j] arr m + 1+ j m + 1+ j m 1 j int i = 0 i 0 j = 0; j 0 int k = l; k l while (i < n1 && j < n2) 
        { 
            if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } 
            k++; 
        } i < n1 && j < n2 i < n1 i n1 j < n2 j n2 { 
            if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } 
            k++; 
        } if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } L[i] <= R[j] L[i] L i R[j] R j { 
                arr[k] = R[j]; 
                j++; 
            } arr[k] = R[j] arr[k] arr k R[j] R j j++ j { 
                arr[k] = L[i]; 
                i++; 
            } arr[k] = L[i] arr[k] arr k L[i] L i i++ i k++ k while (i < n1) 
        { 
            arr[k] = L[i]; 
            i++; 
            k++; 
        } i < n1 i n1 { 
            arr[k] = L[i]; 
            i++; 
            k++; 
        } arr[k] = L[i] arr[k] arr k L[i] L i i++ i k++ k while (j < n2) 
        { 
            arr[k] = R[j]; 
            j++; 
            k++; 
        } j < n2 j n2 { 
            arr[k] = R[j]; 
            j++; 
            k++; 
        } arr[k] = R[j] arr[k] arr k R[j] R j j++ j k++ k int arr[] arr int l l int m m int r r // Main function that sorts arr[l..r] using 
    // merge() 
    static void sort(int arr[], int l, int r) 
    { 
        if (l < r) 
        { 
            // Find the middle point 
            int m = (l+r)/2; 
  
            // Sort first and second halves 
            sort(arr, l, m); 
            sort(arr , m+1, r); 
  
            // Merge the sorted halves 
            merge(arr, l, m, r); 
        } 
    } sort { 
        if (l < r) 
        { 
            // Find the middle point 
            int m = (l+r)/2; 
  
            // Sort first and second halves 
            sort(arr, l, m); 
            sort(arr , m+1, r); 
  
            // Merge the sorted halves 
            merge(arr, l, m, r); 
        } 
    } if (l < r) 
        { 
            // Find the middle point 
            int m = (l+r)/2; 
  
            // Sort first and second halves 
            sort(arr, l, m); 
            sort(arr , m+1, r); 
  
            // Merge the sorted halves 
            merge(arr, l, m, r); 
        } l < r l r { 
            // Find the middle point 
            int m = (l+r)/2; 
  
            // Sort first and second halves 
            sort(arr, l, m); 
            sort(arr , m+1, r); 
  
            // Merge the sorted halves 
            merge(arr, l, m, r); 
        } int m = (l+r)/2; m (l+r)/2 (l+r) l r 2 sort(arr, l, m) sort arr l m sort(arr , m+1, r) sort arr m+1 m 1 r merge(arr, l, m, r) merge arr l m r int arr[] arr int l l int r r public static void main(String args[]){
		Scanner scanner = new Scanner(System.in);
		int n,m;
		n = scanner.nextInt();
		m = scanner.nextInt();
		int polls[] = new int[n];
		int totalPoll = 0;
		boolean printed = false;
		for(int i = 0; i < n; i++){
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		}
		double threshHold = (1.0 / (4.0 * (double) m));
		sort(polls, 0, polls.length-1);
		for(int i = 0; i < m; i++){
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		}

		if(!printed){
			System.out.println("Yes");
		}
	} main {
		Scanner scanner = new Scanner(System.in);
		int n,m;
		n = scanner.nextInt();
		m = scanner.nextInt();
		int polls[] = new int[n];
		int totalPoll = 0;
		boolean printed = false;
		for(int i = 0; i < n; i++){
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		}
		double threshHold = (1.0 / (4.0 * (double) m));
		sort(polls, 0, polls.length-1);
		for(int i = 0; i < m; i++){
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		}

		if(!printed){
			System.out.println("Yes");
		}
	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int n n m; m n = scanner.nextInt() n scanner.nextInt() scanner.nextInt scanner m = scanner.nextInt() m scanner.nextInt() scanner.nextInt scanner int polls[] = new int[n]; polls new int[n] n int totalPoll = 0; totalPoll 0 boolean printed = false; printed false for(int i = 0; i < n; i++){
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		} {
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		} polls[i] = scanner.nextInt() polls[i] polls i scanner.nextInt() scanner.nextInt scanner totalPoll += polls[i] totalPoll polls[i] polls i double threshHold = (1.0 / (4.0 * (double) m)); threshHold (1.0 / (4.0 * (double) m)) 1.0 (4.0 * (double) m) 4.0 (double) m sort(polls, 0, polls.length-1) sort polls 0 polls.length-1 polls.length polls polls.length 1 for(int i = 0; i < m; i++){
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		} {
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		} double currentPollPercentage = (double) polls[i] / (double) totalPoll; currentPollPercentage (double) polls[i] / (double) totalPoll (double) polls[i] polls i (double) totalPoll if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			} currentPollPercentage < threshHold currentPollPercentage threshHold {
				System.out.println("No");
				printed = true;
				break;
			} System.out.println("No") System.out.println System.out System System.out "No" printed = true printed true break; if(!printed){
			System.out.println("Yes");
		} !printed printed {
			System.out.println("Yes");
		} System.out.println("Yes") System.out.println System.out System System.out "Yes" String args[] args
import java.util.*;

class Main{
	static void merge(int arr[], int l, int m, int r) 
    { 
        // Find sizes of two subarrays to be merged 
        int n1 = m - l + 1; 
        int n2 = r - m; 
  
        /* Create temp arrays */
        int L[] = new int [n1]; 
        int R[] = new int [n2]; 
  
        /*Copy data to temp arrays*/
        for (int i=0; i<n1; ++i) 
            L[i] = arr[l + i]; 
        for (int j=0; j<n2; ++j) 
            R[j] = arr[m + 1+ j]; 
  
        /* Merge the temp arrays */
  
        // Initial indexes of first and second subarrays 
        int i = 0, j = 0; 
  
        // Initial index of merged subarry array 
        int k = l; 
        while (i < n1 && j < n2) 
        { 
            if (L[i] <= R[j]) 
            { 
                arr[k] = R[j]; 
                j++; 
            } 
            else
            { 
                arr[k] = L[i]; 
                i++; 
            } 
            k++; 
        } 
  
        /* Copy remaining elements of L[] if any */
        while (i < n1) 
        { 
            arr[k] = L[i]; 
            i++; 
            k++; 
        } 
  
        /* Copy remaining elements of R[] if any */
        while (j < n2) 
        { 
            arr[k] = R[j]; 
            j++; 
            k++; 
        } 
    } 
  
    // Main function that sorts arr[l..r] using 
    // merge() 
    static void sort(int arr[], int l, int r) 
    { 
        if (l < r) 
        { 
            // Find the middle point 
            int m = (l+r)/2; 
  
            // Sort first and second halves 
            sort(arr, l, m); 
            sort(arr , m+1, r); 
  
            // Merge the sorted halves 
            merge(arr, l, m, r); 
        } 
    } 

	public static void main(String args[]){
		Scanner scanner = new Scanner(System.in);
		int n,m;
		n = scanner.nextInt();
		m = scanner.nextInt();
		int polls[] = new int[n];
		int totalPoll = 0;
		boolean printed = false;
		for(int i = 0; i < n; i++){
			polls[i] = scanner.nextInt();
			totalPoll += polls[i];
		}
		double threshHold = (1.0 / (4.0 * (double) m));
		sort(polls, 0, polls.length-1);
		for(int i = 0; i < m; i++){
			double currentPollPercentage = (double) polls[i] / (double) totalPoll;
			if(currentPollPercentage < threshHold){
				System.out.println("No");
				printed = true;
				break;
			}
		}

		if(!printed){
			System.out.println("Yes");
		}
	}
}