#include <bits/stdc++.h>
void QuickSort(int A[], int l, int h);
int partition(int A[], int l, int h);
int main() {
  int A[4], l;
  int c = 0, i, j;
  for (i = 0; i < 4; i++) scanf("%d", &A[i]);
  l = 0;
  int h = 4 - 1;
  QuickSort(A, l, h);
  if (A[0] + A[3] == A[1] + A[2])
    printf("YES");
  else if (A[0] + A[1] + A[2] == A[3])
    printf("YES");
  else
    printf("NO");
  return 0;
}
void QuickSort(int A[], int l, int h) {
  int loc;
  if (l < h) {
    loc = partition(A, l, h);
    QuickSort(A, l, loc - 1);
    QuickSort(A, loc + 1, h);
  }
}
int partition(int A[], int l, int h) {
  int s, temp, pivot;
  pivot = A[l];
  s = l;
  while (l < h) {
    while (pivot >= A[l]) {
      l++;
    }
    while (pivot < A[h]) {
      h--;
    }
    if (l < h) {
      temp = A[l];
      A[l] = A[h];
      A[h] = temp;
    }
  }
  A[s] = A[h];
  A[h] = pivot;
  return h;
}
