#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
string s;
int n, var[111], zero[111], k;
bool need[111][111];
long long f[111][2][2];
int main() {
  cin >> s;
  n = s.length();
  s = ' ' + s + s[0];
  var[1] = 1;
  for (int i = (2), _b = (n); i <= _b; i++) {
    if (s[i] == 'A' && s[i - 1] == 'B') {
      var[i] = var[i - 1];
    } else
      var[i] = var[i - 1] + 1;
  }
  if (s[1] == 'A' && s[n] == 'B') {
    int t = n;
    while (t > 1 && var[t - 1] == var[n]) --t;
    for (int i = (t), _b = (n); i <= _b; i++) var[i] = var[1];
  }
  int k = 0;
  for (int i = (1), _b = (n); i <= _b; i++) k = max(k, var[i]);
  var[n + 1] = var[1];
  for (int i = (1), _b = (n); i <= _b; i++) {
    if (s[i] == 'A' && s[i + 1] == 'A') zero[var[i + 1]] = 1;
    if (s[i] == 'B' && s[i + 1] == 'B') zero[var[i]] = 1;
  }
  for (int i = (1), _b = (n); i <= _b; i++) {
    if (s[i] == 'A' && s[i + 1] == 'B') {
      need[var[i]][var[i + 1]] = need[var[i + 1]][var[i]] = true;
    }
  }
  f[1][0][0] = 1;
  if (!zero[1]) f[1][1][1] = 1;
  for (int i = (2), _b = (k); i <= _b; i++)
    for (int first = 0, _a = (2); first < _a; first++) {
      if (!zero[i]) f[i][first][1] = f[i - 1][first][1] + f[i - 1][first][0];
      f[i][first][0] = f[i - 1][first][1];
      if (!need[i][i - 1]) f[i][first][0] += f[i - 1][first][0];
    }
  long long res = f[k][1][1] + f[k][1][0] + f[k][0][1];
  if (!need[1][k]) res += f[k][0][0];
  cout << res << endl;
  return 0;
}
