#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int u, v; ll w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int main() { int N, x; cin >> N >> x; vector P(N); for (int i = 0; i < N; i++) cin >> P[i]; reverse(P.begin(), P.end()); for (unsigned S = 0; S < (1U << N); S++) { int sum = 0; for (int i = 0; i < N; i++) if (S & (1 << i)) sum += P[i]; if (sum == x) { for (int i = N - 1; i >= 0; i--) if (S & (1 << i)) cout << (N - i) << ' '; cout << endl; } } }