//templete
#include <bits/stdc++.h>
#define rep(i,n) for (int i=0;i<n;i++)
using namespace std;
using ll = long long;
using P = pair<int,int>;

int main(){
    ll N,M,T;
    cin>>N>>M>>T;

    vector<int>a;
    vector<int>b;
    ll tempa,tempb;

    ll bat=N;

    rep(i,M){
        cin>>tempa>>tempb;
        a.push_back(tempa);
        b.push_back(tempb);
    }

    rep(i,M){
        if(i==0){
            if(bat-a[i]<=0){cout<<"No";return 0;}
            bat-=a[i];
            bat+=b[i]-a[i];if(bat>N)bat=N;
            continue;
        }
        
        if(bat-(a[i]-b[i-1])<=0){cout<<"No";return 0;}
        bat-=(a[i]-b[i-1]);
        bat+=b[i]-a[i];if(bat>N)bat=N;
    }

    if(bat-(T-b[M-1])<=0){cout<<"No";return 0;}

    cout<<"Yes";
    return 0;
}
#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;

#define watch(x) cout<<(#x)<<"="<<(x)<<'\n'
#define mset(d,val) memset(d,val,sizeof(d))
#define setp(x) cout<<fixed<<setprecision(x)
#define forn(i,a,b) for(int i=a;i<b;i++)
#define fore(i,a,b) for(int i=a;i<=b;i++)
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define INF ll(1e18)
#define MOD 998244353
#define pqueue priority_queue
#define fbo find_by_order
#define ook order_of_key
typedef long long ll;
typedef pair<ll,ll> ii;
typedef vector<ll> vi;
typedef vector<ii> vii;
typedef long double ld;
typedef tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update> pbds;

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

#define pb push_back
#define mp make_pair
typedef long long ll;
typedef pair<ll, ll> ii;
typedef vector<ll> vi;
typedef vector<ii> vii;




int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
	ll n,m,t; cin>>n>>m>>t; ll arr[m+2][2]; ll maxi=n;
	for (ll i=1;i<m+1;i++) {
		cin>>arr[i][0]>>arr[i][1];
	}
	arr[0][1]=0; arr[m+1][0]=t;
	bool ans=1;
	for (ll i=1;i<m+1;i++) {
		n-=(arr[i][0]-arr[i-1][1]);
		if (n<=0) ans=0;
		n+=(arr[i][1]-arr[i][0]);
		if (n>maxi) n=maxi;
	}
	n-=(arr[m+1][0]-arr[m][1]);
	if (n<=0) ans=0;
	if (ans) cout<<"Yes";
	else cout<<"No";
}
