#include <bits/stdc++.h>
using namespace std;
#define rep2(i,j,n) for (int i=j; i <=(int)(n); i++)

int main() {
	int n,m,t,a,b,x;

	cin >> n >> m >> t;
	x=n;
	b=0;
	rep2(i,1,m) {
		cin >> a ;
		x-=a-b;
		if(x<1){
			cout << "No" << endl;
			return 0;
		}
		cin >> b ;
		x+=b-a;
		x=min(n,x);
	}
	x-=t-b;
	if(x<1) cout << "No" << endl;
	else cout << "Yes" << endl;
	return 0;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define rep(i, n) for (ll i = 0; i < (ll)(n); i++)
#define rep1(i, n) for (ll i = 1; i <= (ll)(n); i++)
#define all(v) v.begin(), v.end()
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0;}
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0;}
#define dbl(i) fixed << setprecision(15) << i << endl;
#define GET_VARIABLE_NAME(Variable) (#Variable)
#define dbc(a) cout << GET_VARIABLE_NAME(a) << "=" << a << endl;
#define vsum(v) accumulate(all(v), 0);
bool IsPrime(int num)
{
    if (num < 2) return false;
    else if (num == 2) return true;
    else if (num % 2 == 0) return false; // 偶数はあらかじめ除く
    double sqrtNum = sqrt(num);
    for (int i = 3; i <= sqrtNum; i += 2)
    {
        if (num % i == 0)
        {
            // 素数ではない
            return false;
        }
    }
    // 素数である
    return true;
}
vector<ll> enum_divisors(ll N) {
    vector<ll> res;
    for (ll i = 1; i * i <= N; ++i) {
        if (N % i == 0) {
            res.push_back(i);
            // 重複しないならば i の相方である N/i も push
            if (N/i != i) res.push_back(N/i);
        }
    }
    // 小さい順に並び替える
    sort(res.begin(), res.end());
    return res;
}
/*vector<pair<long long, long long> > prime_factorize(long long N) {
    vector<pair<long long, long long> > res;
    for (long long a = 2; a * a <= N; ++a) {
        if (N % a != 0) continue;
        long long ex = 0; // 指数

        // 割れる限り割り続ける
        while (N % a == 0) {
            ++ex;
            N /= a;
        }

        // その結果を push
        res.push_back({a, ex});
    }

    // 最後に残った数について
    if (N != 1) res.push_back({N, 1});
    return res;
}*/
ll gcd(int a, int b){
        if (a%b == 0){
            return(b);
        }else{
            return(gcd(b, a%b));
        }
    }


int main(){
    ll n,m,t;
    cin>>n>>m>>t;
    ll max=n;
    string ans="Yes";
    ll tt=0;
    rep(i,m){
        ll a,b;
        cin>>a>>b;
        n-=(a-tt);//カフェに来るまで
        if(n<=0) ans="No";
        n+=(b-a);//カフェ滞在
        if(n>max) n=max;
        if(n<=0) ans="No";
        tt=b;
        if(i==m-1){
            n-=(t-tt);
            if(n<=0) ans="No";
        }
    }

    cout<<ans<<endl;
}