#include <bits/stdc++.h>          
using namespace std;
using ll = long long;
using ld = long double;
#define rep(i, n) for (ll i = 0; i < (ll)(n); i++)
#define repp(i, st, en) for (ll i = (ll)st; i < (ll)(en); i++)
#define repm(i, st, en) for (ll i = (ll)st; i >= (ll)(en); i--)
#define all(v) v.begin(), v.end()
void chmax(ll &x, ll y) {x = max(x,y);}
void chmin(ll &x, ll y) {x = min(x,y);}
void Yes() {cout << "Yes" << endl; exit(0);}
void No() {cout << "No" << endl; exit(0);}
template<class in_Cout> void Cout(in_Cout x) {cout << x << endl; exit(0);}
template<class in_vec_cout>
void vec_cout(vector<in_vec_cout> vec) {
    for (in_vec_cout res : vec) {cout << res << " ";}
    cout << endl;
}

const ll inf = 1e18;
const ll mod = 1e9 + 7;

int main() {
    vector<ll> A(3);
    rep(i,3) cin >> A[i];
    ll N = A.size();
    vector<ll> num(N);
    rep(i,N) num[i] = i;
    do {
        vector<ll> tmp(N);
        rep(i,N) tmp[i] = A[num[i]];
        if (tmp[2]-tmp[1]==tmp[1]-tmp[0]) Yes();
    } while (next_permutation(all(num)));
    No();
}
#include<bits/stdc++.h>
using namespace std;
int a[10];
int main()
{
	cin>>a[0]>>a[1]>>a[2];
	sort(a,a+3);
	if(a[1]-a[0]==a[2]-a[1])
	{
		cout<<"Yes";
	}
	else
	cout<<"No";
	return 0;
}