#include <bits/stdc++.h>
#define fst first
#define snd second
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 5e3 + 5;
int n, x;
ii a[N];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> x;
for (int i = 1; i <= n; i++) {
cin >> a[i].fst;
a[i].snd = i;
}
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; i++) {
for (int j = i + 1, k = n + 1; j <= n; j++) {
// i < j < k
// k là vị trí nhỏ nhất thoả mãn a[k] >= x - a[i] - a[j]
while (k - 1 > j && a[k - 1].fst >= (x - a[i].fst) - a[j].fst) k--;
if (!(j < k && k <= n)) continue;
if (a[i].fst + a[j].fst + a[k].fst == x) {
cout << a[i].snd << ' ' << a[j].snd << ' ' << a[k].snd << '\n';
return 0;
}
}
}
cout << "IMPOSSIBLE" << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKI2RlZmluZSBmc3QgZmlyc3QgCiNkZWZpbmUgc25kIHNlY29uZCAgCgp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgpjb25zdCBpbnQgTiA9IDVlMyArIDU7IAoKaW50IG4sIHg7IAppaSBhW05dOyAKCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKCWNpbi50aWUobnVsbHB0cik7IAkKCWNpbiA+PiBuID4+IHg7IAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CgkJY2luID4+IGFbaV0uZnN0OyAKCQlhW2ldLnNuZCA9IGk7ICAKCX0KCglzb3J0KGEgKyAxLCBhICsgbiArIDEpOyAKCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKCQlmb3IgKGludCBqID0gaSArIDEsIGsgPSBuICsgMTsgaiA8PSBuOyBqKyspIHsKCQkJLy8gaSA8IGogPCBrCgkJCS8vIGsgbMOgIHbhu4sgdHLDrSBuaOG7jyBuaOG6pXQgdGhv4bqjIG3Do24gYVtrXSA+PSB4IC0gYVtpXSAtIGFbal0KCQkJd2hpbGUgKGsgLSAxID4gaiAmJiBhW2sgLSAxXS5mc3QgPj0gKHggLSBhW2ldLmZzdCkgLSBhW2pdLmZzdCkgay0tOyAKCQkJaWYgKCEoaiA8IGsgJiYgayA8PSBuKSkgY29udGludWU7IAoJCQlpZiAoYVtpXS5mc3QgKyBhW2pdLmZzdCArIGFba10uZnN0ID09IHgpIHsKCQkJCWNvdXQgPDwgYVtpXS5zbmQgPDwgJyAnIDw8IGFbal0uc25kIDw8ICcgJyA8PCBhW2tdLnNuZCA8PCAnXG4nOyAKCQkJCXJldHVybiAwOyAgCgkJCX0KCQl9Cgl9CgoJY291dCA8PCAiSU1QT1NTSUJMRSIgPDwgJ1xuJzsgCn0=