#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9, maxn = 1e6 + 1;
const long long inff = 1e18;
const long double eps = 1e-9;
int n, k, m, cnt[maxn] = {};
string s;
void input() {
  cin >> s;
  n = s.length();
  s.insert(0, " ");
  for (int i = 1; i <= n; ++i) cnt[i] = cnt[i - 1] ^ (1 << (s[i] - 'a'));
}
map<int, int> l;
int f[maxn];
void solve() {
  fill(f + 1, f + n + 1, inf);
  l.insert(make_pair(0, 0));
  for (int i = 1; i <= n; ++i) {
    auto it = l.find(cnt[i]);
    if (it != l.end()) f[i] = min(f[i], f[it->second] + 1);
    int min_x;
    for (int j = 0; j < 26; ++j) {
      int pair<int, int> = (1 << j) ^ cnt[i];
      auto it = l.find(pair<int, int>);
      if (it != l.end()) f[i] = min(f[i], f[it->second] + 1);
    }
    if (f[i] < inf and l.find(cnt[i]) == l.end())
      l.insert(make_pair(cnt[i], i));
  }
  cout << f[n];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  input();
  solve();
}
