#include <string>
#include <cstring>
#include <cstdio>
#include <iostream>
#include <malloc.h>
#include <vector>
using namespace std;

const int maxn = 25;

int main()
{
    //for(int i = 0; i < 12; ++i) cout << str[i] << endl;
    int n, m, t;
    int wp[maxn];
    int cap[maxn];
    int res;
    while(cin >> n >> t >> m){
        res = 0;
        for(int i = 0; i < n; ++i) cin >> wp[i];

        for(int idx = 0; idx < (1 << n); ++idx){
            int bit = idx;
            int ans = 0;
            int curbag = 0;
            for(int i = 0; i < m; ++i) cap[i] = t;
            for(int i = 0; i < n; ++i){
                if(bit & 1){
                    if(cap[curbag] >= wp[i]) {
                        cap[curbag] -= wp[i];
                        ans++;
                    }
                    else {
                        // cap不够用新包
                        ++curbag;
                        if(curbag >= m) break;
                        else {
                            if(t >= wp[i]){ //空背包放得下
                                cap[curbag] -= wp[i];
                                ans++;
                            }
                        }
                    }
                }
                bit >>= 1;
            }
            res = max(ans, res);
            //cout << idx << " " << ans << endl;
        }
        cout << res << endl;
    }
    return 0;
}