#include <bits/stdc++.h>
using namespace std;
char S[110];
long long F[110][3];
int st, en, len;
vector<int> Q;
void solve(int x0, int x1) {
  memset(F, 0, sizeof(F));
  F[en][0] = x0, F[en][1] = x1;
  for (int i = en - 1; i >= st; i--) {
    if (Q[i] == 0) {
      if (Q[i + 1] == 0)
        F[i][0] = F[i + 1][0];
      else if (Q[i + 1] == 1)
        F[i][0] = F[i][1] = 0;
      else if (Q[i + 1] == 2)
        F[i][0] = F[i + 1][1];
      F[i][1] = 0;
    } else if (Q[i] == 1)
      F[i][0] = F[i + 1][0] + F[i + 1][1], F[i][1] = 0;
    else if (Q[i] == 2) {
      if (Q[i + 1] == 0)
        F[i][0] = F[i + 1][0], F[i][1] = F[i + 1][0];
      else if (Q[i + 1] == 1)
        F[i][0] = 0, F[i][1] = F[i + 1][0];
      else if (Q[i + 1] == 2)
        F[i][0] = F[i + 1][1], F[i][1] = F[i + 1][0] + F[i + 1][1];
    }
  }
}
int main() {
  scanf("%s", S + 1);
  len = strlen(S + 1), st = 1, en = len;
  if (S[1] == 'A' && S[len] == 'B')
    S[0] = S[len], S[len] = '\0', st = 0, en = len - 1;
  for (int i = st; i <= en;)
    if (S[i] == 'B' && (i + 1 <= en && S[i + 1] == 'A'))
      Q.push_back(2), i += 2;
    else
      Q.push_back(S[i] - 'A'), i++;
  st = 0, en = Q.size() - 1;
  long long ans = 0;
  if (Q[en] == 2) {
    if (Q[st] == 2) {
      solve(1, 0);
      ans += F[st][1];
      solve(0, 1);
      ans += F[st][0] + F[st][1];
    } else if (Q[st] == 1) {
      solve(0, 1);
      ans = F[st][0];
    } else if (Q[st] == 0) {
      solve(1, 1);
      ans = F[st][0];
    }
  } else if (Q[en] == 1) {
    solve(1, 0);
    ans = F[st][0] + F[st][1];
  } else if (Q[en] == 0) {
    if (Q[st] == 0) {
      solve(1, 0);
      ans = F[st][0];
    } else if (Q[st] == 1)
      ans = 0;
    else if (Q[st] == 2) {
      solve(1, 0);
      ans = F[st][1];
    }
  }
  cout << ans << endl;
  return 0;
}
