def get_b_list_reversed(bin_str): b_list = [] s = bin_str.lstrip('0') or '0' # Handle leading zeros while s != '0': # Count trailing zeros by reversing the string reversed_s = s[::-1] b = 0 while b < len(reversed_s) and reversed_s[b] == '0': b += 1 b_list.append(b) # Remove the trailing b zeros if b >= len(reversed_s): s = '0' else: s = reversed_s[b:][::-1].lstrip('0') or '0' # Subtract 1 from s if s == '0': s = '0' else: s_list = list(s) i = len(s_list) - 1 while i >= 0 and s_list[i] == '0': s_list[i] = '1' i -= 1 if i >= 0: s_list[i] = '0' else: s_list = ['1'] + s_list # Remove leading zeros after subtraction new_s = ''.join(s_list).lstrip('0') or '0' # Divide by 2 (right shift) s = new_s[:-1] if len(new_s) > 1 else '0' return b_list[::-1] # Reverse to get the correct order n_bin = input().strip() or '0' m_bin = input().strip() or '0' n_b_list = get_b_list_reversed(n_bin) m_b_list = get_b_list_reversed(m_bin) # Compare lexicographically if n_b_list < m_b_list: print("Yes") else: print("No")