#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:16777216")
#pragma warning(default : 4)
void deb() { std::cerr << '\n'; };
template <typename T1>
void deb(T1 x1) {
  std::cerr << x1 << '\n';
};
template <typename T1, typename T2>
void deb(T1 x1, T2 x2) {
  std::cerr << x1 << " " << x2 << '\n';
};
template <typename T1, typename T2, typename T3>
void deb(T1 x1, T2 x2, T3 x3) {
  std::cerr << x1 << " " << x2 << " " << x3 << '\n';
};
const double PI = acos(-1.);
long long Round(double x) { return x < 0 ? x - .5 : x + .5; };
using namespace std;
long long d[111][2][2];
long long go(char *s) {
  memset(d, 0, sizeof(d));
  int n = strlen(s);
  d[0][0][0] = 1;
  d[0][1][1] = 1;
  s[0] -= 'A';
  for (int i = (1), _b(n); i < _b; ++i) {
    s[i] -= 'A';
    for (int m1 = (0), _b(2); m1 < _b; ++m1)
      for (int m2 = (0), _b(2); m2 < _b; ++m2)
        for (int m3 = (0), _b(2); m3 < _b; ++m3) {
          int l = m2, r = m3;
          if (m2 == 0 && m3 == 1) l = 1, r = 0;
          if ((m2 == 1 && ((r == s[i]) || m3 == 0)) ||
              (m2 == 0 && l == s[i - 1] && ((r == s[i]) || m3 == 0)))
            d[i][m1][m3] += d[i - 1][m1][m2];
        }
  }
  long long rs = 0;
  for (int m2 = (0), _b(2); m2 < _b; ++m2)
    for (int m3 = (0), _b(2); m3 < _b; ++m3) {
      int l = m2, r = m3;
      if (m2 == 0 && m3 == 1) l = 1, r = 0;
      if ((m2 == 1 && ((r == s[0]) || m3 == 0)) ||
          (m2 == 0 && l == s[n - 1] && ((r == s[0]) || m3 == 0)))
        rs += d[n - 1][m3][m2];
    }
  return rs;
}
string getn(char *s, int l) {
  string r = string(s, s + l);
  for (int i = (0), _b(l); i < _b; ++i)
    if (s[i] == 'A' && s[(i + 1) % l] == 'B') r[i] = 'B', r[(i + 1) % l] = 'A';
  return r;
}
long long brute(char *s) {
  int n = strlen(s);
  int ms = 1 << n;
  long long rs = 0;
  char x[200];
  for (int m = (0), _b(ms); m < _b; ++m) {
    for (int i = 0, j = 1; i < n; i++, j <<= 1)
      if (m & j)
        x[i] = 'A';
      else
        x[i] = 'B';
    x[n] = 0;
    if (string(s) == string(getn(x, n))) rs++;
  }
  return rs;
}
char s[111];
int main() {
  gets(s);
  cout << go(s) << endl;
  return 0;
}
