#include <bits/stdc++.h>
using namespace std;
template <class T>
bool umin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool umax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
char s[200009];
map<vector<int>, bool> vis;
map<vector<int>, int> dp;
int main() {
  scanf("%s", s);
  int n = strlen(s);
  vector<int> v(26);
  vis[v] = 1;
  dp[v] = 0;
  for (int i = 0; i < n; i++) {
    v[s[i] - 'a'] ^= 1;
    if (vis[v]) continue;
    int ans = 1000000007;
    for (int j = 0; j < 26; j++) {
      v[j] ^= 1;
      if (vis[v]) umin(ans, dp[v] + 1);
      v[j] ^= 1;
    }
    vis[v] = 1;
    dp[v] = ans;
  }
  vector<int> tmp(26);
  if (tmp == v)
    puts("1");
  else
    printf("%d\n", dp[v]);
  return 0;
}
