#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<math.h>
#include<set>
#include<vector>
#include<map>
#include<utility>
#include<iomanip>
#include<iterator>
#define N 2009
#define INF 0x3f3f3f3f
#define mod 998244353
using namespace std;
typedef long long ll;
typedef long double ldb;
typedef pair<int,int> pii;
int n,m,ans;
int a[N],dp[N];
vector<int> w;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=0;i<=(1<<(n-1));i++){
if(__builtin_popcount(i)==m){
// cout<<i<<endl;
w.clear();
memset(dp,0,sizeof(dp));
for(int j=0;j<n;j++){
if(!(i&(1<<j))){
// cout<<j<<endl;
w.push_back(a[j+1]);
}
}
dp[0]=1;
for(int j=0;j<w.size();j++){
for(int k=n*100;k>=w[j];k--){
dp[k]=dp[k-w[j]]||dp[k];
}
}
int sum=0;
for(int i=1;i<=n*100;i++)sum+=dp[i];
ans=max(ans,sum);
}
}
cout<<ans<<endl;
return 0;
}
20 4
74 67 39 93 92 99 56 39 35 81 45 1 77 66 98 75 28 73 57 28
这组数据会输出942而非951...