#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8, pi = acos(-1.0);
int cl(double z) { return ceil(z - eps); }
int flr(double z) { return floor(z + eps); }
long long cll(double z) { return ceil(z - eps); }
long long flrl(double z) { return floor(z + eps); }
int dblcmp(double d) { return (d < -eps) ? -1 : (d > eps); }
const int inf = 999999999;
const long long infl = 999999999999999999LL;
template <class T>
inline void checkmin(T &a, T b) {
  if (a > b) a = b;
}
template <class T>
inline void checkmax(T &a, T b) {
  if (a < b) a = b;
}
template <class T>
inline bool fcheckmin(T &a, T b) {
  if (a > b) {
    a = b;
    return true;
  } else
    return false;
}
template <class T>
inline bool fcheckmax(T &a, T b) {
  if (a < b) {
    a = b;
    return true;
  } else
    return false;
}
template <class T>
inline double dist(T a, T b) {
  return sqrt(a * 1.0 * a + b * 1.0 * b);
}
inline int pinput() {
  int S = 0, c = getchar();
  while (!isdigit(c)) c = getchar();
  while (isdigit(c)) {
    S = S * 10 + c - 48;
    c = getchar();
  }
  return S;
}
char buf[1000005];
long long dp[3][10005];
long long build(int first, int n) {
  memset(dp[0], 0, sizeof(dp[0]));
  memset(dp[1], 0, sizeof(dp[1]));
  if (first == 0) {
    dp[0][1] = 1;
  } else {
    dp[1][1] = 1;
  }
  for (int i = (1); i <= (n - 1); i++) {
    if (dp[0][i] > infl || dp[1][i] > infl)
      while (1)
        ;
    if (buf[i] == 'A') dp[0][i + 1] += dp[0][i];
    if (buf[i] == 'B' && buf[i + 1] == 'A') dp[1][i + 1] += dp[0][i];
    if (buf[i + 1] == 'B') dp[1][i + 1] += dp[1][i];
    dp[0][i + 1] += dp[1][i];
  }
  long long ans = 0;
  if (first == 1) {
    if (buf[n] == 'B' && buf[1] == 'A') ans += dp[0][n];
    if (buf[1] == 'B') ans += dp[1][n];
  } else {
    if (buf[n] == 'A') ans += dp[0][n];
    ans += dp[1][n];
  }
  return ans;
}
void solve() {
  scanf("%s", buf + 1);
  int L = strlen(buf + 1);
  long long ANS = 0;
  for (int first = (0); first <= (1); first++) {
    ANS += build(first, L);
  }
  cout << ANS << endl;
}
int main() {
  do {
    solve();
  } while (0);
}
