#include<bits/stdc++.h>
#define os 1500
#define inf 1000
#define NAME "BALANCE"
using namespace std;
int n, p, a[20];
int dp[3001];
vector<int> l[3001], r[3001];
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
freopen(NAME".INP", "r", stdin);
freopen(NAME".OUT", "w", stdout);
cin >> n >> p;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 0; i <= 3000; i++) dp[i] = inf;
dp[os] = 0;
for (int i = 1; i <= n; i++) {
int temp[3001];
vector<int> tl[3001], tr[3001];
for (int j = 0; j <= 3000; j++) {
temp[j] = dp[j];
tl[j] = l[j];
tr[j] = r[j];
}
for (int d = -1500; d <= 1500; d++) {
int id = d + os;
if (dp[id] >= inf) continue;
int x = d - a[i] + os;
if (abs(d - a[i]) <= 1500 && temp[x] > dp[id] + 1) {
temp[x] = dp[id] + 1;
tl[x] = l[id];
tr[x] = r[id];
tl[x].push_back(i);
}
x = d + a[i] + os;
if (abs(d + a[i]) <= 1500 && temp[x] > dp[id] + 1) {
temp[x] = dp[id] + 1;
tl[x] = l[id];
tr[x] = r[id];
tr[x].push_back(i);
}
}
for (int j = 0; j <= 3000; j++) {
dp[j] = temp[j];
l[j] = tl[j];
r[j] = tr[j];
}
}
int target = p + os;
if (dp[target] >= inf) {
cout << -1 << endl;
} else {
cout << l[target].size();
for (int x : l[target]) cout << " " << x;
cout << endl;
cout << r[target].size();
for (int x : r[target]) cout << " " << x;
cout << endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBvcyAxNTAwCiNkZWZpbmUgaW5mIDEwMDAKI2RlZmluZSBOQU1FICJCQUxBTkNFIgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG4sIHAsIGFbMjBdOwppbnQgZHBbMzAwMV07CnZlY3RvcjxpbnQ+IGxbMzAwMV0sIHJbMzAwMV07CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7CiAgICBmcmVvcGVuKE5BTUUiLklOUCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3BlbihOQU1FIi5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICBjaW4gPj4gbiA+PiBwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDMwMDA7IGkrKykgZHBbaV0gPSBpbmY7CiAgICBkcFtvc10gPSAwOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGludCB0ZW1wWzMwMDFdOwogICAgICAgIHZlY3RvcjxpbnQ+IHRsWzMwMDFdLCB0clszMDAxXTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSAzMDAwOyBqKyspIHsKICAgICAgICAgICAgdGVtcFtqXSA9IGRwW2pdOwogICAgICAgICAgICB0bFtqXSA9IGxbal07CiAgICAgICAgICAgIHRyW2pdID0gcltqXTsKICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgZCA9IC0xNTAwOyBkIDw9IDE1MDA7IGQrKykgewogICAgICAgICAgICBpbnQgaWQgPSBkICsgb3M7CiAgICAgICAgICAgIGlmIChkcFtpZF0gPj0gaW5mKSBjb250aW51ZTsKICAgICAgICAgICAgaW50IHggPSBkIC0gYVtpXSArIG9zOwogICAgICAgICAgICBpZiAoYWJzKGQgLSBhW2ldKSA8PSAxNTAwICYmIHRlbXBbeF0gPiBkcFtpZF0gKyAxKSB7CiAgICAgICAgICAgICAgICB0ZW1wW3hdID0gZHBbaWRdICsgMTsKICAgICAgICAgICAgICAgIHRsW3hdID0gbFtpZF07CiAgICAgICAgICAgICAgICB0clt4XSA9IHJbaWRdOwogICAgICAgICAgICAgICAgdGxbeF0ucHVzaF9iYWNrKGkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHggPSBkICsgYVtpXSArIG9zOwogICAgICAgICAgICBpZiAoYWJzKGQgKyBhW2ldKSA8PSAxNTAwICYmIHRlbXBbeF0gPiBkcFtpZF0gKyAxKSB7CiAgICAgICAgICAgICAgICB0ZW1wW3hdID0gZHBbaWRdICsgMTsKICAgICAgICAgICAgICAgIHRsW3hdID0gbFtpZF07CiAgICAgICAgICAgICAgICB0clt4XSA9IHJbaWRdOwogICAgICAgICAgICAgICAgdHJbeF0ucHVzaF9iYWNrKGkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8PSAzMDAwOyBqKyspIHsKICAgICAgICAgICAgZHBbal0gPSB0ZW1wW2pdOwogICAgICAgICAgICBsW2pdID0gdGxbal07CiAgICAgICAgICAgIHJbal0gPSB0cltqXTsKICAgICAgICB9CiAgICB9CgogICAgaW50IHRhcmdldCA9IHAgKyBvczsKICAgIGlmIChkcFt0YXJnZXRdID49IGluZikgewogICAgICAgIGNvdXQgPDwgLTEgPDwgZW5kbDsKICAgIH0gZWxzZSB7CiAgICAgICAgY291dCA8PCBsW3RhcmdldF0uc2l6ZSgpOwogICAgICAgIGZvciAoaW50IHggOiBsW3RhcmdldF0pIGNvdXQgPDwgIiAiIDw8IHg7CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgICAgIGNvdXQgPDwgclt0YXJnZXRdLnNpemUoKTsKICAgICAgICBmb3IgKGludCB4IDogclt0YXJnZXRdKSBjb3V0IDw8ICIgIiA8PCB4OwogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==