#include <bits/stdc++.h>
using namespace std;
long long dp[200001];
long long bit[1 << 26];
long long p[200001];
string S;
long long N;
long long dfs(long long n) {
  if (dp[n] >= 0) return dp[n];
  if (n == N) return 0;
  long long ret = dfs(n + 1) + 1;
  long long b = p[n] ^ (1 << (S[n] - 'a'));
  if (bit[b] > n) ret = min(ret, dfs(bit[b] + 1) + 1);
  for (long long i = 0; i < 26; i++) {
    long long nb = b ^ (1 << i);
    if (bit[nb] > n) ret = min(ret, dfs(bit[nb] + 1) + 1);
  }
  return dp[n] = ret;
}
signed main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  cout << fixed << setprecision(12);
  fill_n(dp, 200001, -1);
  fill_n(bit, 1 << 26, -1);
  cin >> S;
  N = S.size();
  long long now = 0;
  for (long long i = 0; i < N; i++) {
    now ^= (1 << (S[i] - 'a'));
    p[i] = now;
    bit[now] = i;
  }
  cout << dfs(0) << endl;
  return 0;
}
