#include <bits/stdc++.h>
const int maxn = 110;
int n;
char s[maxn];
long long f[maxn], g[maxn];
int main() {
  int i;
  gets(s), n = strlen(s);
  for (i = 0; i < n; ++i)
    if (s[i] == 'A')
      s[i + n] = s[i];
    else
      break;
  if (i == n) return puts("1"), 0;
  char *s = ::s + i - 1;
  for (i = 1; i <= n; ++i) s[i] -= 'A';
  g[1] = 1;
  for (i = 2; i <= n; ++i)
    if (!s[i]) {
      f[i] = f[i - 1] + g[i - 1];
      g[i] = s[i - 1] * (f[i - 2] + g[i - 2]);
    } else {
      f[i] = 0;
      g[i] = g[i - 1];
    }
  long long ans = g[n];
  if (n > 1 && !s[2]) {
    f[1] = g[1] = 0, f[2] = 0, g[2] = 1;
    for (i = 3; i <= n; ++i)
      if (!s[i]) {
        f[i] = f[i - 1] + g[i - 1];
        g[i] = s[i - 1] * (f[i - 2] + g[i - 2]);
      } else {
        f[i] = 0;
        g[i] = g[i - 1];
      }
    ans += f[n] + g[n];
  }
  printf("%I64d", ans);
  return 0;
}
