/*
*  <|--- <<_||_>> ---|>
*  <---  >>-\\-<<  --->
*  <|--- <<_||_>> ---|>
*/
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

typedef tree<int, null_type, less<int>, rb_tree_tag,
    tree_order_statistics_node_update> ordered_set;

#define el     '\n'
#define int long long
const int mod = 1000000000 + 7;

void solve() {
    int n, k, m;
    cin >> n >> k >> m;

    vector<int> powers;
    for (int i = 0; i < n; ++i) {
        int p, w;
        cin >> p >> w;
        if (w <= k) {
            powers.push_back(p);
        }
    }

    sort(powers.begin(), powers.end());

    int teams = 0;
    int left = 0, right = (int) powers.size() - 1;
    while (left < right) {
        if (powers[left] + powers[right] >= m) {
            teams++;
            left++;
            right--;
        } else {
            left++;
        }
    }

    cout << teams << el;
}

int32_t main() {
    ios_base::sync_with_stdio(false);
    cout.tie(nullptr), cin.tie(nullptr);

    int tt = 1;
    //cin >> tt;
    while (tt--) {
        solve();
    }
    return 0;
}
