def count_trailing_zeros(s): count = 0 for c in reversed(s): if c == '0': count += 1 else: break return count def subtract_one(s): if s == '0': return '0' rev = list(s[::-1]) i = 0 while i < len(rev): if rev[i] == '1': rev[i] = '0' break else: rev[i] = '1' i += 1 res = ''.join(rev[::-1]).lstrip('0') return res if res else '0' def divide_by_two(s): if s == '0': return '0' return s[:-1] if len(s) > 1 else '0' def decompose(s): b_list = [] while s != '0': b = count_trailing_zeros(s) b_list.append(b) if b > 0: s = s[:-b] if not s: s = '0' break s = subtract_one(s) if s == '0': break s = divide_by_two(s) return b_list def compare_lists(a, b): for i in range(min(len(a), len(b))): if a[i] < b[i]: return True elif a[i] > b[i]: return False return len(a) < len(b) n_str = input().strip() m_str = input().strip() if not n_str: n_str = '0' if not m_str: m_str = '0' n_list = decompose(n_str) m_list = decompose(m_str) n_reversed = n_list[::-1] m_reversed = m_list[::-1] if compare_lists(n_reversed, m_reversed): print("Yes") else: print("No")