import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main 
{
	public static void main(String[] Arguments) throws IOException 
	{
		BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ST = new StringTokenizer(BR.readLine());
		int cSum = 0, N = Integer.parseInt(ST.nextToken()), M = Integer.parseInt(ST.nextToken()), Count = 0, itemVotes[] = new int[N];
		double Result = 0.00, Barrier = (double)1 / (double)100001;
		ST = new StringTokenizer(BR.readLine());
		for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		}
		Result = (double)1 / (double)(4 * M);
		Result *= (double)cSum;
		for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		}
		System.out.println((Count >= M) ? "Yes" : "No");
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.StringTokenizer; StringTokenizer java.util public class Main 
{
	public static void main(String[] Arguments) throws IOException 
	{
		BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ST = new StringTokenizer(BR.readLine());
		int cSum = 0, N = Integer.parseInt(ST.nextToken()), M = Integer.parseInt(ST.nextToken()), Count = 0, itemVotes[] = new int[N];
		double Result = 0.00, Barrier = (double)1 / (double)100001;
		ST = new StringTokenizer(BR.readLine());
		for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		}
		Result = (double)1 / (double)(4 * M);
		Result *= (double)cSum;
		for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		}
		System.out.println((Count >= M) ? "Yes" : "No");
	}
} Main public static void main(String[] Arguments) throws IOException 
	{
		BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ST = new StringTokenizer(BR.readLine());
		int cSum = 0, N = Integer.parseInt(ST.nextToken()), M = Integer.parseInt(ST.nextToken()), Count = 0, itemVotes[] = new int[N];
		double Result = 0.00, Barrier = (double)1 / (double)100001;
		ST = new StringTokenizer(BR.readLine());
		for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		}
		Result = (double)1 / (double)(4 * M);
		Result *= (double)cSum;
		for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		}
		System.out.println((Count >= M) ? "Yes" : "No");
	} main {
		BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ST = new StringTokenizer(BR.readLine());
		int cSum = 0, N = Integer.parseInt(ST.nextToken()), M = Integer.parseInt(ST.nextToken()), Count = 0, itemVotes[] = new int[N];
		double Result = 0.00, Barrier = (double)1 / (double)100001;
		ST = new StringTokenizer(BR.readLine());
		for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		}
		Result = (double)1 / (double)(4 * M);
		Result *= (double)cSum;
		for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		}
		System.out.println((Count >= M) ? "Yes" : "No");
	} BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); BR new BufferedReader(new InputStreamReader(System.in)) StringTokenizer ST = new StringTokenizer(BR.readLine()); ST new StringTokenizer(BR.readLine()) int cSum = 0 cSum 0 N = Integer.parseInt(ST.nextToken()) N Integer.parseInt(ST.nextToken()) Integer.parseInt Integer ST.nextToken() ST.nextToken ST M = Integer.parseInt(ST.nextToken()) M Integer.parseInt(ST.nextToken()) Integer.parseInt Integer ST.nextToken() ST.nextToken ST Count = 0 Count 0 itemVotes[] = new int[N]; itemVotes new int[N] N double Result = 0.00 Result 0.00 Barrier = (double)1 / (double)100001; Barrier (double)1 / (double)100001 (double)1 (double)100001 ST = new StringTokenizer(BR.readLine()) ST new StringTokenizer(BR.readLine()) for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		} {
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		} itemVotes[i] = Integer.parseInt(ST.nextToken()) itemVotes[i] itemVotes i Integer.parseInt(ST.nextToken()) Integer.parseInt Integer ST.nextToken() ST.nextToken ST cSum += itemVotes[i] cSum itemVotes[i] itemVotes i Result = (double)1 / (double)(4 * M) Result (double)1 / (double)(4 * M) (double)1 (double)(4 * M) 4 M Result *= (double)cSum Result (double)cSum for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		} {
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		} if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			} itemVotes[i] - Result >= (double)0.000000 itemVotes[i] - Result itemVotes[i] itemVotes i Result (double)0.000000 {
				Count++;
			} Count++ Count System.out.println((Count >= M) ? "Yes" : "No") System.out.println System.out System System.out (Count >= M) ? "Yes" : "No" (Count >= M) Count M "Yes" "No" String[] Arguments Arguments public class Main 
{
	public static void main(String[] Arguments) throws IOException 
	{
		BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ST = new StringTokenizer(BR.readLine());
		int cSum = 0, N = Integer.parseInt(ST.nextToken()), M = Integer.parseInt(ST.nextToken()), Count = 0, itemVotes[] = new int[N];
		double Result = 0.00, Barrier = (double)1 / (double)100001;
		ST = new StringTokenizer(BR.readLine());
		for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		}
		Result = (double)1 / (double)(4 * M);
		Result *= (double)cSum;
		for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		}
		System.out.println((Count >= M) ? "Yes" : "No");
	}
} public class Main 
{
	public static void main(String[] Arguments) throws IOException 
	{
		BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ST = new StringTokenizer(BR.readLine());
		int cSum = 0, N = Integer.parseInt(ST.nextToken()), M = Integer.parseInt(ST.nextToken()), Count = 0, itemVotes[] = new int[N];
		double Result = 0.00, Barrier = (double)1 / (double)100001;
		ST = new StringTokenizer(BR.readLine());
		for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		}
		Result = (double)1 / (double)(4 * M);
		Result *= (double)cSum;
		for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		}
		System.out.println((Count >= M) ? "Yes" : "No");
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main 
{
	public static void main(String[] Arguments) throws IOException 
	{
		BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ST = new StringTokenizer(BR.readLine());
		int cSum = 0, N = Integer.parseInt(ST.nextToken()), M = Integer.parseInt(ST.nextToken()), Count = 0, itemVotes[] = new int[N];
		double Result = 0.00, Barrier = (double)1 / (double)100001;
		ST = new StringTokenizer(BR.readLine());
		for (int i = 0; i < N; i++)
		{
			itemVotes[i] = Integer.parseInt(ST.nextToken());
			cSum += itemVotes[i];
		}
		Result = (double)1 / (double)(4 * M);
		Result *= (double)cSum;
		for (int i = 0; i < N; i++)
		{
			if (itemVotes[i] - Result >= (double)0.000000)
			{
				Count++;
			}
		}
		System.out.println((Count >= M) ? "Yes" : "No");
	}
}
