#include <bits/stdc++.h>
using namespace std;
const int mx = (1 << 26);
int pos[mx], f[200010];
char s[200010];
bitset<26> x[200010];
int main() {
  scanf("%s", s + 1);
  int n = std::strlen(s + 1);
  f[0] = 0;
  memset(pos, -1, sizeof pos);
  pos[0] = 0;
  for (int i = 1; i <= n; i++) {
    x[i] ^= x[i - 1];
    x[i][s[i] - 'a'] = 1 - x[i][s[i] - 'a'];
    f[i] = 2e9;
    int t = x[i].to_ulong(), ind = i;
    for (int j = 0; j < 26; j++) {
      int tmp = (1 << j) ^ t;
      if (pos[tmp] != -1 && f[ind] > f[pos[tmp]]) ind = pos[tmp];
    }
    if (pos[t] != -1 && f[ind] > f[pos[t]]) ind = pos[t];
    f[i] = f[ind] + 1;
    if (pos[t] == -1 || f[i] < f[pos[t]]) pos[t] = i;
  }
  printf("%d\n", f[n]);
  return 0;
}
