#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
long long gcd(long long x, long long y) {
  if (y == 0) return x;
  return gcd(y, x % y);
}
priority_queue<long long> pq;
int main() {
  int T = 1;
  while (T--) {
    string s;
    cin >> s;
    long long a = 0, b = 0;
    for (long long i = 0; i < s.length(); i++) {
      if (a && b) break;
      if (s[i] == 'A' && i < s.length() - 1 && !a) {
        if (s[i + 1] == 'B') {
          a++;
          i++;
        }
      } else if (s[i] == 'B' && i < s.length() - 1 && !b && a) {
        if (s[i + 1] == 'A') {
          b++;
          i++;
        }
      }
    }
    bool x = (a && b);
    a = 0;
    b = 0;
    for (long long i = 0; i < s.length(); i++) {
      if (a && b) break;
      if (s[i] == 'B' && i < s.length() - 1 && !b) {
        if (s[i + 1] == 'A') {
          b++;
          i++;
        }
      } else if (s[i] == 'A' && i < s.length() - 1 && !a && b) {
        if (s[i + 1] == 'B') {
          a++;
          i++;
        }
      }
    }
    bool y = (a && b);
    cout << (x || y ? "YES" : "NO");
  }
  return 0;
}
