#include "bits/stdc++.h" using namespace std; #pragma region TEMPLATE constexpr auto INF = 1000000000000; //10^12;; constexpr auto MOD = 1000000007; //10^9+7;; constexpr auto EPS = 1e-9; constexpr auto PI = 3.141592653589793238462643383279; #define endl '\n'; #define ALL(v) v.begin(), v.end() #define RALL(x) (x).rbegin(), (x).rend() #define SORT(v) sort(ALL(v)) #define RSORT(v) sort(RALL(v)) #define SZ(x) ((int)(x).size()) #define FOR(i, j, k) for (int i=j ; i=k ; i--) #define REP(i, j) FOR(i, 0, j) #define RREP(i, j) RFOR(i, j, 0) #define FOREACH(it,l) for (auto it = l.begin(); it != l.end(); it++) using ll = long long; template T in() { T x; cin >> x; return x; } template void out(T value) { cout << value << endl; } template bool chmax(T& a, const T& b) { if (a < b) { a = b; return 1; } return 0; } template bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; } #pragma endregion struct Fast_IO { const int prec = 10; Fast_IO() { cin.tie(nullptr); ios_base::sync_with_stdio(false); cout << fixed << setprecision(prec); } } fast_io; using VI = vector; signed main() { Fast_IO(); VI v(4); REP(i, 4) v[i] = in(); SORT(v); bool flag = true; FOR(i, 1, 4) { if (v[i] != v[i - 1] + 1) { flag = false; break; } } out(flag ? "Yes" : "No"); return 0; }