You are given string *s*. Your task is to determine if the given string *s* contains two non-overlapping substrings "AB" and "BA" (the substrings can go in any order).
The only line of input contains a string *s* of length between 1 and 10<sup class="upper-index">5</sup> consisting of uppercase Latin letters.
s = input()

found = False

# Check if "AB" and "BA" exist in the string
ab_found = s.find("AB")
ba_found = s.find("BA")

# Iterate over all possible combinations of "AB" and "BA"
while ab_found != -1:
    # Check if there is a non-overlapping "BA" after "AB"
    if ba_found != -1 and ba_found != ab_found + 1:
        found = True
        break

    # Find the next occurrence of "AB" after the current position
    ab_found = s.find("AB", ab_found + 1)
    ba_found = s.find("BA", ba_found + 1)

# Check if we found two non-overlapping substrings "AB" and "BA"
if found:
    print("YES")
else:
    found = False

    # Reset the variables and search again in reverse order
    ab_found = s.rfind("AB")
    ba_found = s.rfind("BA")

    # Iterate over all possible combinations of "AB" and "BA" in reverse order
    while ab_found != -1:
        # Check if there is a non-overlapping "AB" before "BA"
        if ba_found != -1 and ba_found != ab_found + 1:
            found = True
            break

        # Find the previous occurrence of "AB" before the current position
        ab_found = s.rfind("AB", 0, ab_found)
        ba_found = s.rfind("BA", 0, ba_found)

    # Check if we found two non-overlapping substrings "AB" and "BA" in reverse order
    if found:
        print("YES")
    else:
        print("NO")
