/*
Date: 22/11/2015
Name:DAYSO9
Link: http://l...content-available-to-author-only...u.vn/Problem/Details/4483
Result: #28 - TLE
*/
#include <iostream>
#include <sstream>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <utility>
#include <map>
#include <list>
#include <deque>
using namespace std;
#define FOR(i,a,b) for(int i=a; i<=b; i++)
#define Size first
#define stt second
typedef long long LL;
typedef pair<LL,LL> PLL;
LL n,A,G;
deque<PLL> ball;
vector<LL> track;
//Tim den cai Lon nhat < hon size, va chua bi an
LL Find(LL L,LL R,LL size){
if(L > R){
//cout<<"over : "<<L<<" - "<<R<<endl;
return -1;
}else{
//Dieu kien tim thay la size[t] < size <= size[t+1]
LL t = (L + R) / 2;
//cout<<L<<" - "<<R<<" - "<<t<<endl;
if(ball[t].Size < size){
//Neu nho hon
//Kiem tra xem co phai ko, neu khong phai thi tim len phia tren
if(t == ball.size()-1){
return t;
}else{
if(size <= ball[t+1].Size)
{
return t;
}else{
//Tim tiep ve phia tren
return Find(t+1,R,size);
}
}
}else{
//Neu hien tai dang lon hon thi tim ve phia truoc
return Find(L,t-1,size);
}
}
}
int main()
{
cin>>n>>A>>G;
LL s;
if(A > G)
{
cout<<0<<endl;
return 0;
}
FOR(i,0,n-1)
{
cin>>s;
ball.push_back(make_pair(s,i+1));
}
sort(ball.begin(),ball.end());
LL index = -1;
do{
index = Find(0,ball.size()-1,A);
if(index != -1){
A += ball[index].Size;
track.push_back(ball[index].stt);
ball.erase(ball.begin() + index);
if(A > G){
cout<<track.size()<<endl;
FOR(i,0,track.size()-1)
cout<<track[i]<<" ";
return 0;
}
}
}while(index != -1);
cout<<-1<<endl;
return 0;
}
LyoKRGF0ZTogMjIvMTEvMjAxNQpOYW1lOkRBWVNPOQpMaW5rOiBodHRwOi8vbC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4udS52bi9Qcm9ibGVtL0RldGFpbHMvNDQ4MwpSZXN1bHQ6ICMyOCAtIFRMRQoqLwojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8ZGVxdWU+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBGT1IoaSxhLGIpIGZvcihpbnQgaT1hOyBpPD1iOyBpKyspCiNkZWZpbmUgU2l6ZSBmaXJzdAojZGVmaW5lIHN0dCBzZWNvbmQKCnR5cGVkZWYgbG9uZyBsb25nIExMOwp0eXBlZGVmIHBhaXI8TEwsTEw+IFBMTDsKCkxMIG4sQSxHOwpkZXF1ZTxQTEw+IGJhbGw7CnZlY3RvcjxMTD4gdHJhY2s7CgovL1RpbSBkZW4gY2FpIExvbiBuaGF0IDwgaG9uIHNpemUsIHZhIGNodWEgYmkgYW4KTEwgRmluZChMTCBMLExMIFIsTEwgc2l6ZSl7CgkKCWlmKEwgPiBSKXsKCQkvL2NvdXQ8PCJvdmVyIDogIjw8TDw8IiAtICI8PFI8PGVuZGw7CgkJcmV0dXJuIC0xOwoJfWVsc2V7CgkJLy9EaWV1IGtpZW4gdGltIHRoYXkgbGEgc2l6ZVt0XSA8IHNpemUgPD0gc2l6ZVt0KzFdCgkJTEwgdCA9IChMICsgUikgLyAyOwoJCgkJLy9jb3V0PDxMPDwiIC0gIjw8Ujw8IiAtICI8PHQ8PGVuZGw7CgkJCgkJaWYoYmFsbFt0XS5TaXplIDwgc2l6ZSl7CgkJCS8vTmV1IG5obyBob24KCQkJLy9LaWVtIHRyYSB4ZW0gY28gcGhhaSBrbywgbmV1IGtob25nIHBoYWkgdGhpIHRpbSBsZW4gcGhpYSB0cmVuCgkJCWlmKHQgPT0gYmFsbC5zaXplKCktMSl7CgkJCQlyZXR1cm4gdDsKCQkJfWVsc2V7CgkJCQlpZihzaXplIDw9IGJhbGxbdCsxXS5TaXplKQoJCQkJewoJCQkJCXJldHVybiB0OwoJCQkJfWVsc2V7CgkJCQkJLy9UaW0gdGllcCB2ZSBwaGlhIHRyZW4KCQkJCQlyZXR1cm4gRmluZCh0KzEsUixzaXplKTsKCQkJCX0KCQkJCQoJCQkJCgkJCX0KCQl9ZWxzZXsKCQkJLy9OZXUgaGllbiB0YWkgZGFuZyBsb24gaG9uIHRoaSB0aW0gdmUgcGhpYSB0cnVvYwoJCQlyZXR1cm4gRmluZChMLHQtMSxzaXplKTsKCQl9Cgl9Cn0KCmludCBtYWluKCkKewoJCgljaW4+Pm4+PkE+Pkc7CglMTCBzOwoJaWYoQSA+IEcpCgl7CgkJY291dDw8MDw8ZW5kbDsKCQlyZXR1cm4gMDsKCX0KCUZPUihpLDAsbi0xKQoJewoJCWNpbj4+czsKCQliYWxsLnB1c2hfYmFjayhtYWtlX3BhaXIocyxpKzEpKTsKCX0KCQoJc29ydChiYWxsLmJlZ2luKCksYmFsbC5lbmQoKSk7CglMTCBpbmRleCA9IC0xOwoJZG97CgkJaW5kZXggPSBGaW5kKDAsYmFsbC5zaXplKCktMSxBKTsKCQkKCQlpZihpbmRleCAhPSAtMSl7CgkJCQoJCQlBICs9IGJhbGxbaW5kZXhdLlNpemU7CgkJCXRyYWNrLnB1c2hfYmFjayhiYWxsW2luZGV4XS5zdHQpOwoJCQliYWxsLmVyYXNlKGJhbGwuYmVnaW4oKSArIGluZGV4KTsKCQkJCgkJCWlmKEEgPiBHKXsKCQkJCWNvdXQ8PHRyYWNrLnNpemUoKTw8ZW5kbDsKCQkJCUZPUihpLDAsdHJhY2suc2l6ZSgpLTEpCgkJCQkJY291dDw8dHJhY2tbaV08PCIgIjsKCQkJCXJldHVybiAwOwoJCQl9CgkJfQoJfXdoaWxlKGluZGV4ICE9IC0xKTsKCWNvdXQ8PC0xPDxlbmRsOwoJcmV0dXJuIDA7Cn0K