#include <bits/stdc++.h>
using namespace std;
const double PI = 3.14159265358979323846;
const double EPS = 1e-12;
const long long INF = 1LL << 29;
const long long mod = 1e9 + 7;
template <class T>
ostream &operator<<(ostream &os, const vector<T> &v) {
  int n = v.size();
  for (int(i) = 0; (i) < (long long)(n); ++(i))
    os << v[i] << (i == n - 1 ? "" : " ");
  return os;
}
int dp[1 << 26];
int main() {
  string s;
  cin >> s;
  int n = s.size();
  fill(dp, dp + (1 << 26), INF);
  dp[0] = 0;
  int a = 0;
  for (int(i) = 0; (i) < (long long)(n); ++(i)) {
    int c = s[i] - 'a';
    a ^= 1 << c;
    dp[a]++;
    for (int(j) = 0; (j) < (long long)(26); ++(j)) {
      int a2 = a ^ (1 << j);
      ((dp[a]) > (dp[a2] + 1) ? dp[a] = (dp[a2] + 1), true : false);
    }
  }
  cout << dp[a] << endl;
  return 0;
}
