#include<bits/stdc++.h>
using namespace std;
using ll=long long;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
// 步骤1:输入蛋糕数量n和拿走的数量k
ll n,k;
cin>>n>>k;
// 存储每块蛋糕的质量(下标从1开始,对应横坐标i)
vector<ll>m(n+1);
// 步骤2:计算初始质心的分子和分母
// 初始质心公式:xc = (Σ m[i] * i) / (Σ m[i])
double a_sum=0,b_sum=0; // a_sum = Σ m[i]*i,b_sum = Σ m[i]
for(ll i=1;i<=n;i++){
cin>>m[i];
a_sum += m[i] * i; // 累加分子项:质量×横坐标
b_sum += m[i]; // 累加分母项:总质量
}
double xc = a_sum / b_sum; // 初始质心位置
// 步骤3:状压枚举所有“拿走蛋糕”的子集(核心算法)
// 用整数i的二进制位表示“是否拿走第j块蛋糕”:
// - 二进制第j位为1 → 拿走第j+1块蛋糕(j从0开始)
// - 枚举范围:1 ~ (1<<n)-1,覆盖所有非空子集(至少拿走1块)
for(ll i=1;i<=(1<<n)-1;i++){
ll cnt=0; // 记录当前子集拿走的蛋糕数量
// 初始化剩余质心的分子和分母(先等于初始值,再减去拿走的部分)
double ta_sum = a_sum, tb_sum = b_sum;
// 遍历每一位,判断是否拿走对应蛋糕
for(ll j=0;j<n;j++){
if((i>>j)&1){ // 第j位为1 → 拿走第j+1块蛋糕
cnt++;
// 从分子和分母中减去被拿走蛋糕对应的项
ta_sum -= m[j+1] * (j+1); // 减去 m[i]*i
tb_sum -= m[j+1]; // 减去 m[i]
}
}
// 步骤4:筛选出“拿走k块蛋糕”的子集,判断剩余质心是否不变
if(cnt == k){ // 只考虑拿走k块蛋糕的情况
// 计算剩余质心:ta_sum / tb_sum
if(xc == ta_sum / tb_sum){ // 剩余质心与初始质心相同 → 满足条件
cout<<"Yes";
return 0; // 找到解,直接输出并结束程序
}
}
}
// 步骤5:所有子集都不满足条件 → 输出No
cout<<"No";
return 0;
}