#include <bits/stdc++.h>
int main(void) {
  char po[214514];
  scanf("%s", po);
  int unti = strlen(po);
  int buri[26][unti];
  for (int i = 0; i < 26; i++)
    for (int j = 0; j < unti; j++) buri[i][j] = 0;
  int mask[26] = {};
  for (int i = 0; i < unti; i++) buri[po[i] % 26][i]++;
  for (int i = 1; i < unti; i++)
    for (int j = 0; j < 26; j++) buri[j][i] ^= buri[j][i - 1];
  int ans = 1;
  int nari = 1;
  int tintin = unti - 1;
  while (1) {
    int kari = 0;
    for (int i = 0; i < 26; i++) kari += mask[i] ^ buri[i][tintin];
    if (kari == 0)
      break;
    else if (kari == 1) {
      for (int i = 0; i < 26; i++) mask[i] = buri[i][tintin];
      if (tintin != unti - 1) ans++;
      tintin = unti - 1;
    } else
      tintin--;
  }
  tintin = 0;
  for (int i = 0; i < 26; i++) mask[i] = buri[i][unti - 1];
  while (1) {
    int kari = 0;
    for (int i = 0; i < 26; i++)
      kari += mask[i] ^ (tintin == 0 ? 0 : buri[i][tintin - 1]);
    if (kari == 0)
      break;
    else if (kari == 1) {
      for (int i = 0; i < 26; i++)
        mask[i] = (tintin == 0 ? 0 : buri[i][tintin - 1]);
      if (tintin != 0) nari++;
      tintin = 0;
    } else
      tintin++;
  }
  printf("%d", ans > nari ? nari : ans);
  return 0;
}
