#include <bits/stdc++.h>
#include "molecules.h"
#define ff first
#define ss second
using namespace std;

vector<int> find_subset(int l, int u, vector<int> w) {
	int N =w.size();
	vector< pair<int,int> > ws;
	for(int i =0; i < N; i++) ws.push_back(make_pair(w[i],i));
	sort(begin(ws),end(ws));
	vector<long long> sums(N+1,0);
	for(int i =0; i < N; i++) sums[i+1] =sums[i]+ws[i].ff;
	if(sums[N] < l) return vector<int>();
	int a =0;
	while(a < N && sums[a] < l) a++;
	for(int i =N; i > 0; i--) {
		while(a > 0 && sums[N]-sums[i]+sums[a] > u) a--;
		if(sums[N]-sums[i]+sums[a] >= l && sums[N]-sums[i]+sums[a] <= u) {
			vector<int> ans;
			for(int j =0; j < a; j++) ans.push_back(ws[j].ss);
			for(int j =i; j < N; j++) ans.push_back(ws[j].ss);
			return ans;}
		}
	return vector<int>();}
