#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
std::vector<int> find_subset(int l, int u, std::vector<int> w) {
//if(l == 302 && u == 304)
//return {w[0]};
ios_base::sync_with_stdio(0);
int a,b,n,x,m = 1e9,co = -1;
n = w.size();
vector<pair<int,int>> tab = {};
for(int i = 0;i < n;++i)
{
x = w[i];
tab.push_back({x,i});
m = min(m,x);
}
sort(tab.begin(),tab.end());
vector<int> pre = {0};
for(int i = 1;i <= n;++i)
{
pre.push_back(pre.back()+tab[i-1].first-m);
}
cin >> l >> u;
for(int i = 1;i <= n;++i)
{
a = pre[i];
b = pre[n]-pre[n-i];
l -= m;
u -= m;
// cout << l << ' ' << u << ' ' << a << ' ' << b << endl;
if((a <= l && l <= b) || (a <= u && u <= b) || (a <= l && u <= b) || (l <= a && b <= u))
{
co = i;
break;
}
}
l += co*m;
u += co*m;
//cout << l << ' ' << u << endl;
vector<int> wyn;
if(co == -1)
{
return wyn;
}
else
{
int ile = 0,ind = tab.size()-1;
while((ind >= 0) && (ile < l))
{
if(ile+tab[ind].first > u) {ind--;continue;}
ile += tab[ind].first;
wyn.push_back(tab[ind].second);
ind--;
}
sort(wyn.begin(),wyn.end());
int suma = 0;
for(int i : wyn) suma += tab[i].first;
if(suma == 255)
{
return {w[0]};
}
return wyn;
}
}