import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class Main { void run() { Scanner sc = new Scanner(System.in); long n = sc.nextLong(); long m = sc.nextLong(); System.out.println(dfs(n, m) ? "Yes" : "No"); } boolean dfs(long n, long m) { if (n % 2 == 1 && m % 2 == 1) return false; if (n == 0 || m == 0) return true; boolean ret = false; if (n % 2 == 1 && m % 2 == 0) { ret |= dfs(n - 1, m / 2); } else if (n % 2 == 0 && m % 2 == 1) { ret |= dfs(n / 2, m - 1); } else if (n % 2 == 0 && m % 2 == 0) { ret |= dfs(n / 2, m - 1); ret |= dfs(n - 1, m / 2); } return ret; } public static void main(String[] args) { new Main().run(); } void tr(Object... objects) { System.out.println(Arrays.deepToString(objects)); } }