CSES - Shared codeLink to this code: https://cses.fi/paste/764a138ddfa322b81b912c/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	ll n ; ll x;
	cin >> n >> x;
	vector<ll> v(n, 0);
	for (auto &r : v) cin >> r;
	unordered_map<ll, ll> m;
	for (auto i : v) {
		m[i]++;
	}
	ll valid = 0;
	vector<ll> s , g(n, -1);
	for (ll i = 0; i < n - 2; i++) {
		ll sum = x - v[i];
		for (int r = i + 1; r < n - 1; r++) {
			ll f = sum - v[r];
			if (m[f] >= 1) {
				m[f]--;
				if (m[v[i]] >= 1) {
					m[v[i]]--;
					if (m[v[r]] >= 1)
					{
						cout << i + 1 << " " << r + 1 << " ";
						for (ll j = 0; j < n; j++) {
							if (j != i && j != r && v[j] == f) {
								cout << j + 1;
								return 0;
							}
						}
					}

					m[v[i]]++;
				}
				m[f]++;
			}

		}

	}
//	if (valid == 0)
	cout << "IMPOSSIBLE";

}