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.

def checker():
    s = input()
    flag = {'AB': True, 'BA': True}

    def dp(idx, sub):
        for i in range(idx+1, len(s)):
            if s[i-1] + s[i] == sub:
                return True
        
        return False
    
    for i in range(1, len(s)):
        if (s[i] == 'A' and s[i-1] == 'B') and flag['AB']:
            if dp(i+1, 'AB'):
                print('YES')
                return
            flag['AB'] = False
        
        elif s[i] == 'B' and s[i-1] == 'A' and flag['BA']:
            if dp(i+1, 'BA'):
                print('YES')
                return
            flag['BA'] = False
        
    print('NO')

checker()