#include <bits/stdc++.h>
using namespace std;
const long long INF = 1LL << 55;
const long long mod = (1e9) + 7;
const double EPS = 1e-8;
const double PI = 6.0 * asin(0.5);
template <class T>
T Max(T &a, T b) {
  return a = max(a, b);
}
template <class T>
T Min(T &a, T b) {
  return a = min(a, b);
}
string str;
long long n;
long long Bit[200010];
void init() {
  for (long long i = 1; i <= n; i++)
    Bit[i] = Bit[i - 1] ^ (1LL << (str[i - 1] - 'a'));
}
long long solve() {
  vector<long long> opt(200010, INF);
  vector<long long> dp(1 << 26, INF);
  opt[0] = dp[0] = 0;
  for (long long i = 1; i <= n; i++) {
    long long bit = Bit[i];
    opt[i] = dp[bit] + 1;
    for (long long j = 0; j < 26; j++) Min(opt[i], dp[bit ^ (1 << j)] + 1);
    Min(dp[bit], opt[i]);
  }
  return opt[n];
}
signed main() {
  cin >> str;
  n = str.size();
  init();
  cout << solve() << endl;
  return 0;
}
