#include <bits/stdc++.h>
const int INF = 0x3f3f3f3f;
const long long int INFLL = 0x3f3f3f3f3f3f3f3fll;
long long int getint() {
  long long int ret = 0;
  bool f = 0;
  char c;
  while ((c = getchar()) < '0' || c > '9')
    if (c == '-') f ^= 1;
  while (c >= '0' && c <= '9') {
    ret = ret * 10 + c - '0';
    c = getchar();
  }
  return f ? -ret : ret;
}
using namespace std;
const int MAXN = 100;
long long int f[MAXN + 10][2];
char s[MAXN + 10];
int main() {
  scanf("%s", s + 1);
  int n = strlen(s + 1);
  f[1][0] = 1;
  for (int i = 2; i <= n; ++i) {
    if (s[i - 1] == 'A') f[i][0] += f[i - 1][0];
    if (s[i - 1] == 'B' && s[i] == 'A') f[i][1] += f[i - 1][0];
    if (s[i] == 'B') f[i][1] += f[i - 1][1];
    f[i][0] += f[i - 1][1];
  }
  long long int ans = f[n][1];
  if (s[n] == 'A') ans += f[n][0];
  memset(f, 0, sizeof f);
  f[1][1] = 1;
  for (int i = 2; i <= n; ++i) {
    if (s[i - 1] == 'A') f[i][0] += f[i - 1][0];
    if (s[i - 1] == 'B' && s[i] == 'A') f[i][1] += f[i - 1][0];
    if (s[i] == 'B') f[i][1] += f[i - 1][1];
    f[i][0] += f[i - 1][1];
  }
  if (s[1] == 'B')
    ans += f[n][1];
  else if (s[n] == 'B')
    ans += f[n][0];
  printf("%I64d\n", ans);
}
