#include <bits/stdc++.h>
using namespace std;
int main(){
     int n, m, t;
    cin >> n >> m >> t; 
    int charge = n, time = 0;
    int c;
    c = 1;
    
    while(m--){
        int a, b;
        cin >> a >> b;
        charge -= a - time;
        if(charge <= 0) {
            cout << "No"<< endl;
            return 0;
        }
        charge += b - a;
        if(charge > n) charge = n;
        time = b;
    }
    charge -= t - time;

    if(charge <= 0){
        cout << "No" << endl;
    }
    else{
    cout << "Yes";
    }
    return 0;
}
// KNOW NOTHING!
#include <bits/stdc++.h>
#define ll long long int
#define F(i,j,k,in) for(int i=j;i<k;i+=in)
#define DF(i,j,k,in) for(int i=j;i>=k;i-=in)
#define feach(it,l) for (auto it = l.begin(); it != l.end(); ++it)
#define fall(a) a.begin(),a.end()
#define sz(x) (int)x.size()
#define szs(x) (int)x.length()
#define pb push_back
#define ub upper_bound
#define lb lower_bound
#define eq equal_range
#define fs first
#define ss second
#define ins insert
#define mkp make_pair
#define endl "\n"
using namespace std;
typedef vector<ll> vll;
typedef vector<int> vin;
typedef vector<char> vch;
typedef vector<string> vst;
typedef set<ll> sll;
typedef set<int> sint;
typedef set<char> sch;
typedef set<string> sst;
typedef queue<ll> qll;
typedef queue<int> qin;
typedef deque<ll> dqll;
typedef deque<int> dqint;
typedef priority_queue<ll> pqll;
typedef priority_queue<int> pqin;
typedef map<ll,ll> mpll;
typedef map<int,int> mpin;
typedef pair<ll,ll> pll;
typedef pair<int,int> pin;
const ll MOD=1000000007;
const long double PI=3.1415926535897932384626433832795;
ll pwr(ll b,ll p){ll res=1;while(p){if(p&1) {res*=b; p--;}else{b*=b; p>>=1;}}return res;}
int msb (int n) {return 31-__builtin_clz(n);}
ll msbl (ll n) {return 63-__builtin_clzll(n);}
int lsb (int n) {return __builtin_ctz(n);}
ll  lsbl (ll n) {return __builtin_ctzll(n);}
int setbit (int n) {return __builtin_popcount(n);}
ll setbitl (ll n) {return __builtin_popcountll(n);}
int main()
{
/*
freopen ("input.txt","r","stdin");
freopen ("output.txt","w","stdout");
*/
ios_base::sync_with_stdio(false) , cin.tie(NULL) , cout.tie(NULL);
ll n,m,t; cin>>n>>m>>t;
vector <array <ll ,2>> a (m);
F (i,0,m,1) {
	cin>>a[i][0]>>a[i][1];
}
ll cap =n , pr=0;
int ok = 0;
F (i,0,m,1) {
	cap =max (0LL,cap-(a[i][0]-pr));
	if (cap==0) ok=1;
	cap=min (n,cap+(a[i][1]-a[i][0]));
	pr=a[i][1];
}
cap=cap-(t-a[m-1][1]);
if (ok) cout<<"No";
else if (cap>0) cout<<"Yes";
else cout<<"No";
return 0;
}
/* What we know is a drop , but what we don't know is an ocean !*/