#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
void*wmem;
char memarr[96000000];
template<class T> inline void walloc1d(T **arr, int x, void **mem = &wmem){
static int skip[16] = {0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
(*mem) = (void*)( ((char*)(*mem)) + skip[((unsigned long long)(*mem)) & 15] );
(*arr)=(T*)(*mem);
(*mem)=((*arr)+x);
}
template<class T> inline void walloc1d(T **arr, int x1, int x2, void **mem = &wmem){
walloc1d(arr, x2-x1, mem);
(*arr) -= x1;
}
template<class T1> void sortA_L(int N, T1 a[], void *mem = wmem){
sort(a, a+N);
}
template<class T1> void rsortA_L(int N, T1 a[], void *mem = wmem){
sortA_L(N, a, mem);
reverse(a, a+N);
}
inline int my_getchar_unlocked(){
static char buf[1048576];
static int s = 1048576;
static int e = 1048576;
if(s == e && e == 1048576){
e = fread_unlocked(buf, 1, 1048576, stdin);
s = 0;
}
if(s == e){
return EOF;
}
return buf[s++];
}
inline void rd(int &x){
int k;
int m=0;
x=0;
for(;;){
k = my_getchar_unlocked();
if(k=='-'){
m=1;
break;
}
if('0'<=k&&k<='9'){
x=k-'0';
break;
}
}
for(;;){
k = my_getchar_unlocked();
if(k<'0'||k>'9'){
break;
}
x=x*10+k-'0';
}
if(m){
x=-x;
}
}
struct MY_WRITER{
char buf[1048576];
int s;
int e;
MY_WRITER(){
s = 0;
e = 1048576;
}
~MY_WRITER(){
if(s){
fwrite_unlocked(buf, 1, s, stdout);
}
}
}
;
MY_WRITER MY_WRITER_VAR;
void my_putchar_unlocked(int a){
if(MY_WRITER_VAR.s == MY_WRITER_VAR.e){
fwrite_unlocked(MY_WRITER_VAR.buf, 1, MY_WRITER_VAR.s, stdout);
MY_WRITER_VAR.s = 0;
}
MY_WRITER_VAR.buf[MY_WRITER_VAR.s++] = a;
}
inline void wt_L(char a){
my_putchar_unlocked(a);
}
inline void wt_L(int x){
int s=0;
int m=0;
char f[10];
if(x<0){
m=1;
x=-x;
}
while(x){
f[s++]=x%10;
x/=10;
}
if(!s){
f[s++]=0;
}
if(m){
my_putchar_unlocked('-');
}
while(s--){
my_putchar_unlocked(f[s]+'0');
}
}
int N;
int W;
int K;
int A[200000];
int main(){
int i;
wmem = memarr;
int res = 0;
rd(N);
rd(W);
rd(K);
{
int Lj4PdHRW;
for(Lj4PdHRW=(0);Lj4PdHRW<(N);Lj4PdHRW++){
rd(A[Lj4PdHRW]);
}
}
rsortA_L(N,A);
for(i=(0);i<(K);i++){
A[i] = 1;
}
sortA_L(N,A);
for(i=(0);i<(N);i++){
if(A[i] <= W){
W -= A[i];
res++;
}
}
wt_L(res);
wt_L('\n');
return 0;
}
// cLay version 20201123-1
// --- original code ---
// int N, W, K, A[2d5];
// {
// int res = 0;
// rd(N,W,K,A(N));
// rsortA(N,A);
// rep(i,K) A[i] = 1;
// sortA(N,A);
// rep(i,N) if(A[i] <= W) W -= A[i], res++;
// wt(res);
// }
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQqd21lbTsKY2hhciBtZW1hcnJbOTYwMDAwMDBdOwp0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgdm9pZCB3YWxsb2MxZChUICoqYXJyLCBpbnQgeCwgdm9pZCAqKm1lbSA9ICZ3bWVtKXsKICBzdGF0aWMgaW50IHNraXBbMTZdID0gezAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDF9OwogICgqbWVtKSA9ICh2b2lkKikoICgoY2hhciopKCptZW0pKSArIHNraXBbKCh1bnNpZ25lZCBsb25nIGxvbmcpKCptZW0pKSAmIDE1XSApOwogICgqYXJyKT0oVCopKCptZW0pOwogICgqbWVtKT0oKCphcnIpK3gpOwp9CnRlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSB2b2lkIHdhbGxvYzFkKFQgKiphcnIsIGludCB4MSwgaW50IHgyLCB2b2lkICoqbWVtID0gJndtZW0pewogIHdhbGxvYzFkKGFyciwgeDIteDEsIG1lbSk7CiAgKCphcnIpIC09IHgxOwp9CnRlbXBsYXRlPGNsYXNzIFQxPiB2b2lkIHNvcnRBX0woaW50IE4sIFQxIGFbXSwgdm9pZCAqbWVtID0gd21lbSl7CiAgc29ydChhLCBhK04pOwp9CnRlbXBsYXRlPGNsYXNzIFQxPiB2b2lkIHJzb3J0QV9MKGludCBOLCBUMSBhW10sIHZvaWQgKm1lbSA9IHdtZW0pewogIHNvcnRBX0woTiwgYSwgbWVtKTsKICByZXZlcnNlKGEsIGErTik7Cn0KaW5saW5lIGludCBteV9nZXRjaGFyX3VubG9ja2VkKCl7CiAgc3RhdGljIGNoYXIgYnVmWzEwNDg1NzZdOwogIHN0YXRpYyBpbnQgcyA9IDEwNDg1NzY7CiAgc3RhdGljIGludCBlID0gMTA0ODU3NjsKICBpZihzID09IGUgJiYgZSA9PSAxMDQ4NTc2KXsKICAgIGUgPSBmcmVhZF91bmxvY2tlZChidWYsIDEsIDEwNDg1NzYsIHN0ZGluKTsKICAgIHMgPSAwOwogIH0KICBpZihzID09IGUpewogICAgcmV0dXJuIEVPRjsKICB9CiAgcmV0dXJuIGJ1ZltzKytdOwp9CmlubGluZSB2b2lkIHJkKGludCAmeCl7CiAgaW50IGs7CiAgaW50IG09MDsKICB4PTA7CiAgZm9yKDs7KXsKICAgIGsgPSBteV9nZXRjaGFyX3VubG9ja2VkKCk7CiAgICBpZihrPT0nLScpewogICAgICBtPTE7CiAgICAgIGJyZWFrOwogICAgfQogICAgaWYoJzAnPD1rJiZrPD0nOScpewogICAgICB4PWstJzAnOwogICAgICBicmVhazsKICAgIH0KICB9CiAgZm9yKDs7KXsKICAgIGsgPSBteV9nZXRjaGFyX3VubG9ja2VkKCk7CiAgICBpZihrPCcwJ3x8az4nOScpewogICAgICBicmVhazsKICAgIH0KICAgIHg9eCoxMCtrLScwJzsKICB9CiAgaWYobSl7CiAgICB4PS14OwogIH0KfQpzdHJ1Y3QgTVlfV1JJVEVSewogIGNoYXIgYnVmWzEwNDg1NzZdOwogIGludCBzOwogIGludCBlOwogIE1ZX1dSSVRFUigpewogICAgcyA9IDA7CiAgICBlID0gMTA0ODU3NjsKICB9CiAgfk1ZX1dSSVRFUigpewogICAgaWYocyl7CiAgICAgIGZ3cml0ZV91bmxvY2tlZChidWYsIDEsIHMsIHN0ZG91dCk7CiAgICB9CiAgfQp9CjsKTVlfV1JJVEVSIE1ZX1dSSVRFUl9WQVI7CnZvaWQgbXlfcHV0Y2hhcl91bmxvY2tlZChpbnQgYSl7CiAgaWYoTVlfV1JJVEVSX1ZBUi5zID09IE1ZX1dSSVRFUl9WQVIuZSl7CiAgICBmd3JpdGVfdW5sb2NrZWQoTVlfV1JJVEVSX1ZBUi5idWYsIDEsIE1ZX1dSSVRFUl9WQVIucywgc3Rkb3V0KTsKICAgIE1ZX1dSSVRFUl9WQVIucyA9IDA7CiAgfQogIE1ZX1dSSVRFUl9WQVIuYnVmW01ZX1dSSVRFUl9WQVIucysrXSA9IGE7Cn0KaW5saW5lIHZvaWQgd3RfTChjaGFyIGEpewogIG15X3B1dGNoYXJfdW5sb2NrZWQoYSk7Cn0KaW5saW5lIHZvaWQgd3RfTChpbnQgeCl7CiAgaW50IHM9MDsKICBpbnQgbT0wOwogIGNoYXIgZlsxMF07CiAgaWYoeDwwKXsKICAgIG09MTsKICAgIHg9LXg7CiAgfQogIHdoaWxlKHgpewogICAgZltzKytdPXglMTA7CiAgICB4Lz0xMDsKICB9CiAgaWYoIXMpewogICAgZltzKytdPTA7CiAgfQogIGlmKG0pewogICAgbXlfcHV0Y2hhcl91bmxvY2tlZCgnLScpOwogIH0KICB3aGlsZShzLS0pewogICAgbXlfcHV0Y2hhcl91bmxvY2tlZChmW3NdKycwJyk7CiAgfQp9CmludCBOOwppbnQgVzsKaW50IEs7CmludCBBWzIwMDAwMF07CmludCBtYWluKCl7CiAgaW50IGk7CiAgd21lbSA9IG1lbWFycjsKICBpbnQgcmVzID0gMDsKICByZChOKTsKICByZChXKTsKICByZChLKTsKICB7CiAgICBpbnQgTGo0UGRIUlc7CiAgICBmb3IoTGo0UGRIUlc9KDApO0xqNFBkSFJXPChOKTtMajRQZEhSVysrKXsKICAgICAgcmQoQVtMajRQZEhSV10pOwogICAgfQogIH0KICByc29ydEFfTChOLEEpOwogIGZvcihpPSgwKTtpPChLKTtpKyspewogICAgQVtpXSA9IDE7CiAgfQogIHNvcnRBX0woTixBKTsKICBmb3IoaT0oMCk7aTwoTik7aSsrKXsKICAgIGlmKEFbaV0gPD0gVyl7CiAgICAgIFcgLT0gQVtpXTsKICAgICAgcmVzKys7CiAgICB9CiAgfQogIHd0X0wocmVzKTsKICB3dF9MKCdcbicpOwogIHJldHVybiAwOwp9Ci8vIGNMYXkgdmVyc2lvbiAyMDIwMTEyMy0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gaW50IE4sIFcsIEssIEFbMmQ1XTsKLy8gewovLyAgIGludCByZXMgPSAwOwovLyAgIHJkKE4sVyxLLEEoTikpOwovLyAgIHJzb3J0QShOLEEpOwovLyAgIHJlcChpLEspIEFbaV0gPSAxOwovLyAgIHNvcnRBKE4sQSk7Ci8vICAgcmVwKGksTikgaWYoQVtpXSA8PSBXKSBXIC09IEFbaV0sIHJlcysrOwovLyAgIHd0KHJlcyk7Ci8vIH0K