#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define rep(i,j,k) for(int i = (j); i <= (k); i++)
int main()
{
int n, m;
scanf("%d%d", &n, &m);
int* a = (int*)malloc(n * sizeof(int));
memset(a, 0, n * sizeof(int));
rep(i, 0, n - 1)
scanf("%d", &a[i]);
for (int i = 0; i < n; i++)
for (int j = 0; j < n - i - 1; j++)
if (a[j] > a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
//rep(i, 0, n - 1)
// printf(" %d", a[i]);
int occupy = 0;
int ambition = 0;
int flag = 0;
rep(i, 1, n)
{
ambition += a[i - 1] * (n - occupy);
if (ambition > m)
{
flag = 1;
break;
}
}
if (flag)
printf("yes");
else
printf("no");
return 0;
}