#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5, inf = 0x3f3f3f3f;
bool cmax(int &a, int b) { return (a < b) ? a = b, 1 : 0; }
bool cmin(int &a, int b) { return (a > b) ? a = b, 1 : 0; }
template <typename T>
T read() {
  T ans = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch) && ch != '-') ch = getchar();
  if (ch == '-') f = -1, ch = getchar();
  while (isdigit(ch))
    ans = (ans << 3) + (ans << 1) + (ch - '0'), ch = getchar();
  return ans * f;
}
void file() {}
char s[N];
int sum[30], n;
void input() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
}
bool check() {
  int flag = 0;
  for (register int i = (int)0; i <= (int)25; ++i) {
    if (sum[i] & 1) {
      if (flag) return 0;
      flag = 1;
    }
  }
  return 1;
}
void recal(int pos) {
  memset(sum, 0, sizeof sum);
  for (register int i = (int)n; i >= (int)pos; --i) sum[s[i] - 'a']++;
}
void work() {
  int pos = 1, ans = 0;
  for (register int i = (int)1; i <= (int)n; ++i) sum[s[i] - 'a']++;
  for (register int i = (int)n; i >= (int)pos; --i) {
    if (check()) {
      ++ans;
      pos = i + 1;
      i = n + 1;
      recal(pos);
    } else
      --sum[s[i] - 'a'];
  }
  printf("%d\n", ans);
}
int main() {
  file();
  input();
  work();
  return 0;
}
