#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 1000000000000000001 int main(){ int N,M; cin>>N>>M; vector e(N); rep(i,N)cin>>e[i]; vector v(M),w(M); rep(i,M)cin>>v[i]>>w[i]; vector vs(1<>j&1){ vs[i]+=v[j]; ws[i]+=w[j]; } } } vector dp(N+1,vector(1<(1<=0;T=((T-1)&S)){ if(ws[T]<=e[i]){ if(dp[i+1][S]> Ans(N); for(int i=N;i>0;i--){ int T = pre[i][cur]^cur; cur = pre[i][cur]; rep(j,M){ if(T>>j&1){ Ans[i-1].push_back(j+1); } } } rep(i,N){ cout<