#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;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKY29uc3QgbGwgbmVnID0gLSgxTEwgPDwgNjApOwoKaW50IG1haW4oKSB7CgogICAgaW50IG4sIG0sIGs7CiAgICBjaW4gPj4gbiA+PiBtID4+IGs7CgogICAgdmVjdG9yPHBhaXI8aW50LCBsbD4+IGEobiArIDEpOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV0uZmlyc3QgPj4gYVtpXS5zZWNvbmQ7CiAgICB9CgogICAgdmVjdG9yPHZlY3RvcjxsbD4+IGRwKGsgKyAxLCB2ZWN0b3I8bGw+KG0gKyAxLCBuZWcpKTsKICAgIGRwWzBdWzBdID0gMDsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBpbnQgdyA9IGFbaV0uZmlyc3Q7CiAgICAgICAgbGwgdiA9IGFbaV0uc2Vjb25kOwogICAgICAgIGZvciAoaW50IGogPSBrOyBqID49IDE7IGotLSkgewogICAgICAgICAgICBmb3IgKGludCBzID0gbTsgcyA+PSB3OyBzLS0pIHsKICAgICAgICAgICAgICAgIGlmIChkcFtqIC0gMV1bcyAtIHddICE9IG5lZykgewogICAgICAgICAgICAgICAgICAgIGRwW2pdW3NdID0gbWF4KGRwW2pdW3NdLCBkcFtqIC0gMV1bcyAtIHddICsgdik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGwgYW5zID0gbmVnOwogICAgZm9yIChpbnQgcyA9IDA7IHMgPD0gbTsgcysrKSBhbnMgPSBtYXgoYW5zLCBkcFtrXVtzXSk7CgogICAgY291dCA8PCAoYW5zID09IG5lZyA/IC0xIDogYW5zKSA8PCAnXG4nOwogICAgcmV0dXJuIDA7Cn0K