#include using namespace std; vector p[2]; int main(){ int N,S; cin >> N >> S; for(int i = 0 ; i < N ; i++){ int x; cin >> x; p[i%2].push_back(x); } map> dic[2]; for(int k = 0 ; k < 2 ; k++){ for(int i = 0 ; i < (1<> j & 1 ){ tot += p[k][j]; } } dic[k][tot].push_back(i); } } vector< vector > res; for( auto d : dic[1] ){ if( dic[0].count(S - d.first) ){ for( auto j : d.second ){ for( auto i : dic[0][S-d.first] ){ vector t; for(int k = 0 ; k < N ; k++) if( i >> k & 1 ) t.push_back(k*2); for(int k = 0 ; k < N ; k++) if( j >> k & 1 ) t.push_back(k*2+1); sort(t.begin(),t.end()); res.push_back(t); } } } } sort(res.begin(),res.end()); for( auto v : res ){ for(int i = 0 ; i < v.size() ; i++) cout << v[i] + 1 << (i+1==v.size()?"\n":" "); } }