#include<bits/stdc++.h>
using namespace std;
typedef  long long  ll;
ll inf=1000000000000000000,mod=1000000007;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    #ifndef ONLINE_JUDGE
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
    #endif
    ll arr[4];
    for(ll i=0;i<4;i++)cin>>arr[i];
    for(ll i=0;i<(1<<4);i++){
        ll suma=0,sumb=0;
        for(ll j=0;j<4;j++){
            if((1<<j)&i)
            suma+=arr[j];
            else
            sumb+=arr[j];
        }
        if(suma==sumb){
        cout<<"Yes";return 0;}
    }
    cout<<"No";
}

#include <bits/stdc++.h>

using namespace std;

typedef long long          ll;
typedef unsigned long long ull;
typedef vector<int>         vi;
typedef vector<bool>       vb;
typedef map<int, int>      mii;
typedef pair<int, int>     ii;

#define INF                0x3f3f3f3f
#define INFLL              0x3f3f3f3f3f3f3f3f
#define each(x, s)         for(auto& x : s)
#define loop(x)            for(int i = 0;i < x;i++)
#define vloop(v, x)        for(int v = 0;v < x;v++)
#define avg(l, r)          l + (r - l) / 2
#define iter(a)            a.begin(), a.end()
#define riter(a)           a.rbegin(), a.rend()
#define endl               "\n"

const ll mod = 1000000007;

bool solve(vi& a, int n, int s) {
  if (a[n - 1] > s or (n < 0 and s)) return false;
  if (a[n - 1] == s) return true;
  return solve(a, n - 1, s - a[n - 1]) | solve(a, n - 1, s);
}

int main() {
  ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);

  int sum = 0;
  vi a(4);
  loop(4) {
    cin >> a[i];
    sum += a[i];
  }
  bool ans = false;
  if (~sum & 1) {
    sum /= 2;
    ans = solve(a, 4, sum);
  }
  cout << (ans ? "Yes" : "No") << endl;
  return 0;
}

