#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:200000000")
using namespace std;
template <typename T>
inline T Abs(T x) {
  return (x >= 0) ? x : -x;
}
const int INF = (int)1E9;
const long long INF64 = (long long)1E18;
const long double EPS = 1E-9;
const long double PI = 3.1415926535897932384626433832795;
const int MAXN = 110;
int n;
long long d[MAXN][2];
string s;
long long solve(int pos, int mustA, char c0) {
  if (pos == n) {
    if (c0 == 'B' && mustA == 1)
      return 0;
    else
      return 1;
  }
  long long &ans = d[pos][mustA];
  if (ans != -1) return ans;
  ans = 0;
  if (pos != 0 || c0 == 'A') {
    if (s[pos] == 'A')
      ans += solve(pos + 1, 1, c0);
    else if (s[pos + 1] == 'A')
      ans += solve(pos + 2, 0, c0);
  }
  if (pos != 0 || c0 == 'B') {
    if (mustA == 0) {
      if (s[pos] == 'B') ans += solve(pos + 1, 0, c0);
    }
  }
  return ans;
}
int main() {
  cin >> s;
  if (count((s).begin(), (s).end(), 'B') == 0) {
    cout << 1 << endl;
    return 0;
  }
  while (s[0] != 'B') {
    s += s[0];
    s.erase(0, 1);
  }
  n = (int)s.size();
  s = s + s;
  memset(d, 255, sizeof d);
  long long a = solve(0, 0, 'A');
  memset(d, 255, sizeof d);
  long long b = solve(0, 0, 'B');
  cout << a + b << endl;
  return 0;
}
