#include<bits/stdc++.h>
using namespace std;
using ui=unsigned int;
using ll=long long;
using ull=unsigned long long;
using i128=__int128_t;
using u128=__uint128_t;
using ld=long double;
void solve()
{//考虑到n的数据量极小 进行状压枚举
//先算出最开始的质心 后续与其比较 注意到质心应是浮点数
//对于二进制的某一位 如果是一 就进行记录
//最后用记录下来的数据算出新的质心进行比较、
//注意 记录二进制0的数量时需要用n减去1的数量
//举例:001 有2个0 但是我们记录完第一个1 循环就结束了 无法获取正确的0的数量
int n,k,sum2=0,sum1=0;
cin >> n >> k;
vector<int>m(n+1,0);
for(int i=1;i<=n;i++)
{
cin >> m[i];
sum1+=m[i]*i;
sum2+=m[i];
}
double heart=1.0*sum1/sum2;
for(int mask=1;mask<(1<<n);mask++)
{
sum1=sum2=0;
int t=mask,cnt=1,cnt2=0;
while(t!=0)
{
int temp=(t&1);
if(temp==1)
{
sum1+=m[cnt]*cnt;
sum2+=m[cnt];
cnt2++;
}
cnt++;
t>>=1;
}
if((n-cnt2)==k)
{
double a=1.0*sum1/sum2;
if(a==heart)
{
cout << "Yes";
return;
}
}
}
cout << "No";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t=1;
//cin >> t;
while(t--)
{
solve();
}
return 0;
}