#include <bits/stdc++.h>
using namespace std;

using ll = long long;
const ll neg = -(1LL << 60);

int main() {

    int n, m, k;
    cin >> n >> m >> k;

    vector<pair<int, ll>> a(n + 1);
    for (int i = 1; i <= n; i++) {
        cin >> a[i].first >> a[i].second;
    }

    vector<vector<ll>> dp(k + 1, vector<ll>(m + 1, neg));
    dp[0][0] = 0;

    for (int i = 1; i <= n; i++) {
        int w = a[i].first;
        ll v = a[i].second;
        for (int j = k; j >= 1; j--) {
            for (int s = m; s >= w; s--) {
                if (dp[j - 1][s - w] != neg) {
                    dp[j][s] = max(dp[j][s], dp[j - 1][s - w] + v);
                }
            }
        }
    }

    ll ans = neg;
    for (int s = 0; s <= m; s++) ans = max(ans, dp[k][s]);

    cout << (ans == neg ? -1 : ans) << '\n';
    return 0;
}
