// https://atcoder.jp/contests/abcXXX/tasks/abcXXX_x #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using ull = unsigned long long; using pll = pair; static const ll INF = 1001001001; static const ll LLINF = 1001001001001001001; #define REP(i, n) for(ll i = 0; i < (n); ++i) #define RANGE(i, m, n) for(ll i = (m); i <= (n); ++i) #define RRANGE(i, m, n) for(ll i = (m); i >= (n); --i) #define POSITIVE(x) (x)=((x) < 0) ? 0 : (x) ll power(ll x, ll y) { ll ret = 1; while(y-- > 0) ret *= x; return ret; } ll gcd(ll a, ll b) { assert(a >= 0); assert(b >= 0); if (b == 0) return a; return gcd(b, a % b); } ll extgcd(ll a, ll b, ll& x, ll& y) { x = 1; y = 0; assert(a >= 0); assert(b >= 0); if (b == 0) return a; ll X, Y; auto d = extgcd(b, a % b, X, Y); x = Y; y = X - (a / b) * Y; return d; } int run(istream& in, ostream& out) { vector v(4); in >> v[0] >> v[1] >> v[2] >> v[3]; sort(v.begin(), v.end()); if (v[0] + 1 == v[1] && v[1] +1 == v[2] && v[2]+1 == v[3]) { out << "Yes" << endl; } else { out << "No" << endl; } return 0; } int main() { return run(cin, cout); }