CSES - Shared codeLink to this code: https://cses.fi/paste/72ac98c9abef09f58f92de/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define vi vector<ll>
#define pi pair<ll,ll>
#define pb push_back
int main(){
    ios::sync_with_stdio(false);cin.tie(nullptr);
    ll n,k; cin>>n>>k;
    vector<pi> v(n);
    for(int i=0;i<n;i++){
      cin>>v[i].first;
      v[i].second=i+1;
    }
    sort(v.begin(),v.end());
    int i=0,j=n-1;
    ll currsum=0;
    bool flag=0;
    while(i<j){
        int l=i+1,r=j-1;
        currsum=0;
        while(l<r){
            currsum=v[i].first+v[j].first+v[l].first+v[r].first;
            if(currsum==k){
                std::cout<<v[i].second<<" "<<v[j].second<<" "<<v[l].second<<" "<<v[r].second;
                flag=1;
                return 0;
            }
            else if(currsum<k){
                l++;
            }
            else{
                r--;
            }
        }
        if(currsum<k){
            i++;
        }
        else{
            j--;
        }
    }
    if(flag==0)
    std::cout<<"IMPOSSIBLE";
    return 0;
}