#include <bits/stdc++.h>
using namespace std;
void autoinput() {
  freopen("in.txt", "r", stdin);
  freopen("out.txt", "w", stdout);
}
const long long mod = 1000000007;
long long gcd(long long a, long long b) {
  if (a < b) swap(a, b);
  if (b == 0) return a;
  if (a % b == 0) return b;
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
long long bigmod(long long N, long long P) {
  if (P == 0) return 1;
  if (P % 2 == 0) {
    long long ret = bigmod(N, P / 2);
    return ((ret % mod) * (ret % mod)) % mod;
  } else
    return ((N % mod) * (bigmod(N, P - 1) % mod)) % mod;
}
long long modInverse(long long a, long long m) { return bigmod(a, m - 2); }
long long arr[200005], n = 4, sum = 0;
long long dp[5][1000];
bool func(long long x, long long tot) {
  if (x >= n) return 0;
  if (dp[x][tot] != -1) return dp[x][tot];
  if ((tot + arr[x]) * 2 == sum) return dp[x][tot] = 1;
  long long way1 = func(x + 1, tot);
  long long way2 = func(x + 1, tot + arr[x]);
  return dp[x][tot] = way2 | way1;
}
int main() {
  memset(dp, -1, sizeof dp);
  long long i, j, k, l, m;
  sum = 0;
  for (i = 0; i < n; i++) {
    cin >> arr[i];
    sum += arr[i];
  }
  if (func(0, 0))
    cout << "YES";
  else
    cout << "NO";
}
