#include"bits/stdc++.h"#include<boost/multi_array.hpp>#include<boost/optional.hpp>#include<boost/range/irange.hpp>#include<boost/range/algorithm.hpp>#include<boost/range/adaptors.hpp>using namespace std;namespace adaptor = boost::adaptors;#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)#define rep3(i,m,n) for(int (i)=m;(i)<=(n);(i)++)#define rep3rev(i,m,n) for(int (i)=m;(i)>=(n);(i)--)typedef long long ll;void Main(){int N;  cin >>N;  cout << N*(N+1)/2 << endl;return;}int main(){cin.tie(nullptr);ios_base::sync_with_stdio(false);cout << fixed << setprecision(15);Main();return 0;}
#include"bits/stdc++.h"#include<boost/multi_array.hpp>#include<boost/optional.hpp>#include<boost/range/irange.hpp>#include<boost/range/algorithm.hpp>#include<boost/range/adaptors.hpp>using namespace std;namespace adaptor = boost::adaptors;#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)#define rep3(i,m,n) for(int (i)=m;(i)<=(n);(i)++)#define rep3rev(i,m,n) for(int (i)=m;(i)>=(n);(i)--)typedef long long ll;void Main(){int N;  cin >>N;  cout << N*(N+1)/2 << endl;return;}int main(){cin.tie(nullptr);ios_base::sync_with_stdio(false);cout << fixed << setprecision(15);Main();return 0;}
#include"bits/stdc++.h"
#include<boost/multi_array.hpp>
#include<boost/optional.hpp>
#include<boost/range/irange.hpp>
#include<boost/range/algorithm.hpp>
#include<boost/range/adaptors.hpp>
using namespace std;
namespace adaptor = boost::adaptors;

#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)
#define rep3(i,m,n) for(int (i)=m;(i)<=(n);(i)++)
#define rep3rev(i,m,n) for(int (i)=m;(i)>=(n);(i)--)
typedef long long ll;

void Main(){
 int a,b,c;
   cin >> a >> b >> c;
   
  if((a+b-c)*(b+c-a)*(c+a-b)==0)
  cout << "Yes" << endl;
  else
  cout << "No" endl;
 return;
 }
  
int main(){
 cin.tie(nullptr);
 ios_base::sync_with_stdio(false);
 cout << fixed << setprecision(15);
 Main();
 return 0;
 }