#include <bits/stdc++.h>
using namespace std;
template <class T>
void read(T &x) {
  x = 0;
  char c = getchar();
  long long f = 0;
  while (c < '0' || c > '9') f |= (c == '-'), c = getchar();
  while (c >= '0' && c <= '9')
    x = (x << 3) + (x << 1) + (c ^ 48), c = getchar();
  if (f) x = -x;
}
template <class T>
bool checkmax(T &a, T b) {
  return b > a ? a = b, 1 : 0;
}
template <class T>
bool checkmin(T &a, T b) {
  return b < a ? a = b, 1 : 0;
}
namespace moonpie {
const long long N = 105;
char s[N];
long long ans = 0, a[N], dp[N][2], n;
long long calc(long long op) {
  for (long long i = 1; i <= n; ++i) {
    dp[i + 1][0] += s[i] == 'A' ? dp[i][0] + dp[i][1] : dp[i][1];
    if (s[i + 1] == 'B')
      dp[i + 1][1] += dp[i][1];
    else if (s[i] == 'B')
      dp[i + 1][1] += dp[i][0];
  }
  return dp[n + 1][op];
}
void solve() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  for (long long i = 1; i <= n; ++i) a[i] = s[i] - 'A';
  s[n + 1] = s[1];
  dp[1][0] = 1;
  ans += calc(0);
  memset(dp, 0, sizeof(dp));
  dp[1][1] = 1;
  ans += calc(1);
  cout << ans << endl;
}
}  // namespace moonpie
signed main() {
  moonpie::solve();
  return 0;
}
