using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static long[] NList => ReadLine().Split().Select(long.Parse).ToArray(); public static void Main() { var c = NList; var (a, b) = (c[0], c[1]); var ans = Ope(a, b); WriteLine(ans ? "Yes" : "No"); } static bool Ope(long a, long b) { var op = new List(); if (a == 0) { return true; } if (b == 0) { return true; } var ai = Bits(a); var bi = Bits(b); { var x = 0L; var y = 0L; var filter = 1; for (var i = ai.Count - 1; i >= 0; --i) { if (ai[i] == 1) { ++x; y <<= 1; filter <<= 1; op.Add(2); } if (i > 0) { x <<= 1; ++y; op.Add(1); } } --filter; if (b >= y && (b & filter) == (y & filter)) { return true; } } { op = new List(); var x = 0L; var y = 0L; var filter = 1; for (var i = bi.Count - 1; i >= 0; --i) { if (bi[i] == 1) { x <<= 1; ++y; filter <<= 1; op.Add(1); } if (i > 0) { ++x; y <<= 1; op.Add(2); } } --filter; if (a >= x && (a & filter) == (x & filter)) { return true; } } return false; } static List Bits(long a) { var ans = new List(); while (a > 0) { ans.Add((int)(a & 1)); a >>= 1; } return ans; } }