#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int inf=0x3f,INF=0x3f3f3f3f; const ll LLINF=0x3f3f3f3f3f3f3f3f;
#define sz(x) (int)x.size()
#define af(x) x.begin(), x.end()
#define ms(x, y) memset(x, y, sizeof x);
#define fil(x, y) fill(af(x), y);
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define f first
#define s second	
#define lc i << 1
#define rc i << 1 | 1
const int mod = 1e9 + 7;
ll fpow(ll a, ll b){ll ret=1;while(b){if(b&1)ret=ret*a%mod;a=a*a%mod,b>>=1;}return ret;}
void madd(int &a, int b){a+=b;if(a>=mod)a-=mod;}
void msub(int &a, int b){a+=mod-b;if(a>=mod)a-=mod;}
const int MM = 2e5 + 5;
void solve(){
	int n, m, t;
	cin >> n >> m >> t;
	int p = 0, f = 1, cur = n;
	while(m--){
		int x, y;
		cin >> x >> y;
		cur -= x - p;
		if (cur <= 0){
			f = 0;
			break;
		}
		cur += y - x;
		cur = min(cur, n);
		p = y;
	}
	cur -= t - p;
	if (cur <= 0) f = 0;
	cout << (f ? "Yes" : "No") << '\n';	
}

int main(){
	cin.sync_with_stdio(0); cin.tie(0); cout.tie(0);
	int t = 1;
	//cin >> t;
	while(t--) solve();
}

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

#define rep(i, a, b) for (int i = (a); i < (b); ++i)
using ll = long long;
constexpr ll mod = 998244353;

bool solve() {
  int n, m, t;
  cin >> n >> m >> t;

  int x = n, cur = 0;
  rep(i, 0, m) {
    int a, b;
    cin >> a >> b;

    if (x <= a - cur) return false;
    x = max(0, x - (a - cur));
    x = min(n, x + (b - a));
    cur = b;
  }

  if (x <= t - cur) return false;

  return true;
}

int main() {
  cout << (solve() ? "Yes" : "No") << endl;
  return 0;
}
