#include <bits/stdc++.h>
 
using namespace std;
typedef long long ll;
typedef vector<int> VI;
ll mm=1000000000;ll MM=mm+7;
#define rep(i, n) for(int i=0;i<n;i++)
#define PI 3.141592653589793

int main(){
  vector<ll> c(4);
  rep(i,4)cin >> c.at(i);
  sort(c.begin(),c.end());
  ll x=c.at(0)+c.at(1)+c.at(2);
  if(x==c.at(3))cout << "Yes" << endl;
  else if(c.at(0)+c.at(3)==c.at(1)+c.at(2))cout << "Yes" << endl;
  else cout << "No" << endl;

  

}
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx,avx2,sse,sse2")
#include <functional>
template <typename T>
inline void hash_combine(std::size_t &seed, const T &val) {
    seed ^= std::hash<T>()(val) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
}
template <typename T> inline void hash_val(std::size_t &seed, const T &val) {
    hash_combine(seed, val);
}
template <typename T, typename... Types>
inline void hash_val(std::size_t &seed, const T &val, const Types &... args) {
    hash_combine(seed, val);
    hash_val(seed, args...);
}
template <typename... Types>
inline std::size_t hash_val(const Types &... args) {
    std::size_t seed = 0;
    hash_val(seed, args...);
    return seed;
}
struct pair_hash {
    template <class T1, class T2>
    std::size_t operator()(const std::pair<T1, T2> &p) const {
        return hash_val(p.first, p.second);
    }
};
#include<bits/stdc++.h>
#include<unordered_set>
#include<unordered_map>
#define INF 0x3f3f3f3f
#define mod 1000000007
#define G 3
#define MAX_N 300005
using namespace std;
typedef long long ll;
typedef pair<int,int>P;
typedef complex<double> E;
int n,m,a[1005],b[1005],x;
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++){
        scanf("%d",&x);
        a[x]++;
    }
    for(int i=0;i<m;i++){
        scanf("%d",&x);
        b[x]++;
    }
    for(int i=1;i<=1000;i++){
        if(a[i]>0&&b[i]==0)printf("%d ",i);
        else if(b[i]>0&&a[i]==0)printf("%d ",i);
    }
    return 0;
}