#include using namespace std; using ll = long long; int dp[(1<<20)][25]; //dp[bit][i]:状態がbit,最後に割った要素がa[i]のときの最大値 int main(){ int n, k; cin >> n >> k; vector a(n); for(int i = 0; i < n; i++) cin >> a[i]; dp[0][0] = k; for(int i = 0; i < n; i++) dp[(1<>u)&1)==1 && ((s>>v)&1)!=1){ //uはsに含まれており、次に行く頂点vはsに含まれていない dp[s+(1<