#include <bits/stdc++.h>
bool debug = false;
using namespace std;
const int N = 60;
long long int f[N];
long long int count(int start, int length) {
  if (start == 1) {
    if (length & 1)
      return f[(length + 1) >> 1];
    else
      return f[(length - 1) >> 1];
  } else {
    if (length & 1)
      return f[(length + 1) >> 1];
    else
      return f[(length >> 1) + 2];
  }
}
long long int same(int n) {
  if (n > 6)
    return count(0, n - 2) + count(0, n - 6);
  else
    return 1 << ((n >> 1) - 1);
}
int main() {
  string s;
  long long int ans = 1;
  int n, start = -1, last;
  cin >> s;
  n = (int)s.size();
  f[0] = 0;
  f[1] = f[2] = 1;
  for (int i = 3; i < N; i++) f[i] = f[i - 1] + f[i - 2];
  for (int i = 1; i < n; i++)
    if (s[i] == s[i - 1]) {
      start = i;
      break;
    }
  if (start == -1) {
    if (n & 1)
      cout << count(s[0] == 'A' ? 1 : 0, n) << endl;
    else
      cout << same(n) << endl;
    return 0;
  }
  last = start;
  for (int i = start + 1; i < n; i++)
    if (s[i] == s[i - 1]) {
      if (debug)
        printf("first : count(%d to %d)= %lld\n", last, i,
               count(s[last] == 'A' ? 1 : 0, i - last));
      ans *= count(s[last] == 'A' ? 1 : 0, i - last);
      last = i;
    }
  for (int i = 0; i <= start; i++)
    if (s[i] == s[(n + i - 1) % n]) {
      if (debug)
        printf("second : count(%d to %d)= %lld\n", last, i,
               count(s[last] == 'A' ? 1 : 0, (i - last + n - 1) % n + 1));
      ans *= count(s[last] == 'A' ? 1 : 0, (i - last + n - 1) % n + 1);
      last = i;
    }
  cout << ans << endl;
}
