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

int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  
  if (a + b == c + d) cout << "Yes" << endl;
  else if (a + c == b + d) cout << "Yes" << endl;
  else if (a + d == b + c) cout << "Yes" << endl;
  else if (a + b + c == d) cout << "Yes" << endl;
  else if (a + b + d == c) cout << "Yes" << endl;
  else if (a + c + d == b) cout << "Yes" << endl;
  else if (b + c + d == a) cout << "Yes" << endl;
  else cout << "No" << endl;
  return 0;
}
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define ull unsigned long long
#define v vector
#define umap unordered_map
#define pb push_back
#define mp make_pair
#define pob pop_back
#define db1(x) cout<<#x<<" = "<<x<<'\n'
#define db2(x, y) cout<<#x<<" = "<<x<<", "<<#y<<" = "<<y<<'\n'
#define db3(x, y, z) cout<<#x<<" = "<<x<<", "<<#y<<" = "<<y<<", "<<#z<<" = "<<z<<'\n'
//#define for(i, n) for(int i=0;i<(n);++i)
#define fora(i, a, n) for(int i=a;i<=(n);++i)
#define ford(i, a, n) for(int i=a;i>=(n);--i)

bool compare(int a, int b) {
	return a > b;
}

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif

	int cookies[4];
	for (int i = 0; i < 4; i++)
		cin >> cookies[i];

	bool ans = false;
	int sum;
	for (int i = 0; i < 4; i++) {
      	sum = 0;
		for (int j = 0; j < 4; j++) {
			if (j == i)
				continue;
			sum += cookies[j];
		}
		if (cookies[i] == sum) {
			ans = true;
			break;
		}
	}

	if (ans == false) {
		if (cookies[0] + cookies[1] == cookies[2] + cookies[3])
			ans = true;
		else if (cookies[0] + cookies[2] == cookies[1] + cookies[3])
			ans = true;
		else if (cookies[0] + cookies[3] == cookies[2] + cookies[1])
			ans = true;
	}

	cout << (ans == true ? "Yes" : "No");

	return 0;
}