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

#define all(x) x.begin(), x.end()
#define rall (x) x.rbegin(), x.rend()
#define pb push_back
#define eb emplace_back
#define mp make_pair

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vll;

const int MOD = 1e9+7;

int main(){
    ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
    vi arr(4);
    int cs = 0;
    for (auto &i: arr)
        cin >> i, cs += i;
    bool pos = false;
    for (int i=0; i<4; i++){
        if (arr[i]==cs-arr[i]) pos = true; 
    }
    for (int i=0; i<4; i++)
        for (int j=i+1; j<4; j++){
            int cur = arr[i]+arr[j];
            if (2*cur==cs) pos = true;
        }
    cout << (pos?"Yes\n":"No\n");
}
#include <iostream>
#include <cmath>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <tuple>
#include <utility>
#include <functional>
#include <set>
#include <map>
#include <bitset>
#include <list>
#include<iomanip>

using namespace std;
using ll = long long;
using ULL = unsigned long long;
using pll = std::pair<ll, ll>;
using vi = std::vector<int>;
using vl = std::vector<ll>;
using vb = std::vector<bool>;
using db = double;
using vdb = std::vector<db>;
using qlg= std::priority_queue<ll, vl, std::greater<ll> > ; //ascending
using qll= std::priority_queue<ll, vl, std::less<ll> > ; // descending
using qdg= std::priority_queue<db, vdb, std::greater<db> > ; //ascending
using qdl= std::priority_queue<db, vdb, std::less<db> > ; // descending
template<class T>
using vv = std::vector<std::vector<T> >;


#define REPL(i, n) for (ll i = 0; i < (ll)(n); i++)
#define FORL(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++)
#define REP(i, n) FORL(i, 0, n)

#define MREP(i, n) for (ll i= (ll)(n)-1; i>=0; i-- )
#define MFOR(i, a, b) for (ll i = (ll)(b)-1; i >= (ll)(a); i--)
#define rrep(i, n) for (int i = (int)(n)-1; i >= 0; i--)
#define rreps(i, a, b) for (int i = (int)(b)-1; i >= (int)(a); i--)
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define bit(n) (1LL << (n))
#define INF pow(10, 10)



int main(void)
{

    ll Sc, P, N, M, Q, A, B, C, D, K, T;
    string Str, Pat, Text;
    cin >> N >> M >> T;
    vv<ll> times(M, vl(2, 0) );

    REP(i, M)
    {
        cin >> times[i][0] >> times[i][1];
    }

    bool res = true;
    ll rem = N;
    ll time = 0;
    REP(i, M)
    {
        rem -= times[i][0] - time;
        if(rem<=0)
        {
            res = false;
            break;
        }

        rem = min(rem+times[i][1]-times[i][0], N);

        time = times[i][1];
    }

    rem -= T-time;

    if(rem <= 0) res = false;

    if(res) cout << "Yes"<<endl;
    else cout << "No" << endl;


    return 0;
}
