#include <bits/stdc++.h>
using namespace std;
long long base = 71;
const long long mod = 1e9 + 9;
int convert(char a) {
  if (a >= 'a' && a <= 'z') return (a - 'a') + 1;
  if (a >= 'A' && a <= 'Z') return (a - 'A') + 27;
  return (a - '0') + 53;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  string s;
  cin >> s;
  int n = (int)s.length();
  long long ans = 0;
  vector<long long> V(n);
  long long H = 0;
  long long I = 0;
  long long p = 1;
  V[0] = 1ll;
  for (int i = 0; i < n; ++i) {
    H = (H * base % mod + (long long)convert(s[i])) % mod;
    I = (I + p * (long long)convert(s[i]) % mod) % mod;
    p = (p * base) % mod;
    if (i && H == I) V[i] = V[(i - 1) / 2] + 1ll;
    ans += V[i];
  }
  cout << ans << '\n';
  return 0;
}
