#include using namespace std; typedef long long ll; #define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i)) #define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr) #define all(x) (x).begin(),(x).end() #define pb push_back #define fi first #define se second const int INF=12345678; const int N=3000; int n,m; int w[N]; int dp[3001][3001][2][2]; int dfs(int now, int used, int before, int one) { if(dp[now][used][before][one] > -INF) return dp[now][used][before][one]; if(now==n) { if(used==m) return 0; return -INF; } int ret=-INF; // nowを選ぶ if(used