#include<bits/stdc++.h>                   /*--------------->Logic%2==0---------------->*/
#define CASE(t)                 printf("Case %d: ",t)
#define gcd(a,b)                __gcd(a,b)
#define lcm(a,b)                ((a)*(b))/gcd(a,b)
#define PI                      2*acos(0.0)
#define ll                      long long int
#define endl                    '\n'
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
ll a[4];
cin>>a[0]>>a[1]>>a[2]>>a[3];
sort(a,a+4);

if(a[0]+a[2]==a[1]+a[3])
{
    cout<<"Yes"<<endl;
}
else if(a[0]+a[3]==a[1]+a[2])
{
    cout<<"Yes"<<endl;
}
else if(a[0]+a[1]+a[2]==a[3])
{
    cout<<"Yes"<<endl;
}
else
{
    cout<<"No"<<endl;
}
/*---------->HaPpY CoDiNg----------->*/
return 0;
}


#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define REP(i, n) for (int i = 0; i < n; ++i)
#define rREP(i, n) for (int i = n - 1; i >= 0; --i)
#define FOR(i, a, b) for (int i = a; i <= b; ++i)
#define rFOR(i, a, b) for (int i = a; i >= b; --i)
#define aFOR(i, V) for (auto i : V)
#define ALL(vec) vec.begin(), vec.end()
#define rALL(vec) vec.rbegin(), vec.rend()
#define INF 1'000'000'007 // 10^9 + 7
#define MOD 1'000'000'007 // 10^9 + 7
#define lINF 1'000'000'000'000'000'007 // 10^18 + 7
void printv(vector<int> v) {
    REP(i, v.size() - 1) cout << v[i] << " ";
    cout << v[v.size() - 1] << endl;
}
void printv(vector<char> v) {
    REP(i, v.size() - 1) cout << v[i] << " ";
    cout << v[v.size() - 1] << endl;
}
void printv(vector<vector<int>> v) {
    aFOR(v2, v) {
        REP(i, v2.size() - 1) cout << v2[i] << " ";
        cout << v2[v2.size() - 1] << endl;
    }
}
void printv(vector<vector<char>> v) {
    aFOR(v2, v) {
        REP(i, v2.size() - 1) cout << v2[i] << " ";
        cout << v2[v2.size() - 1] << endl;
    }
}
void printv(vector<string> v) {
    aFOR(i, v) {
        cout << i << endl;
    }
}
// ------------------------------

int main() {
    vector<int> vec(4);
    int sum = 0;
    REP(i, 4) {
        cin >> vec[i];
        sum += vec[i];
    }
    int flag = 0;
    REP(i, 1 << 4) {
        int tmp1 = 0;
        int tmp2 = sum;
        REP(j, 4) {
            if (i & (1 << j)) {
                tmp1 += vec[j];
                tmp2 -= vec[j];
            }
        }
        if (tmp1 == tmp2) flag = 1;
    }
    if (flag) cout << "Yes" << endl;
    else cout << "No" << endl;
    return 0;
}