import java.util.*; import java.math.*; public class Main { // int n = sc.nextInt(); // long m = sc.nextLong(); // String s = sc.next(); // double d = sc.nextDouble(); // // 最大公約数 // public static long gcd (long m,long n) { // if (m < n) return gcd(n,m); // if (n == 0) return m; // return gcd(n,m%n); // } // // // 最小公倍数 // public static long lcm (long m,long n) { // return m*n/gcd(m,n); // } // // // 素数判定 // public static boolean isPrime (long n) { // if (n == 2) return true; // if (n < 2 || n%2 == 0) return false; // double d = Math.sqrt(n); // for (int i = 3; i <= d; i+=2) { // if (n%i == 0) { // return false; // } // } // return true; // } // // public static final long gcd3(long[] param) { // int len = param.length; // long g = gcd(param[0], param[1]); //gcd(a, b) は以前作ったもの // for (int i = 1; i < len - 1; i++) { // g = gcd(g, param[i + 1]); //gcd(a, b) は以前作ったもの // } // return g; // } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] data = new int[4]; for (int i = 0; i < 4; i++) { data[i] = sc.nextInt(); } Arrays.sort(data); for (int i = 0; i < 4; i++) { if (data[0]+i != data[i]) { System.out.println("No"); return; } } System.out.println("Yes"); } }