#include <bits/stdc++.h>
using namespace std;
const int MAX = 2e5 + 10;
const int INF = 2e9;
string S;
int dp[1 << 26];
long long solve() {
  for (long long i = 0; i < 1 << 26; ++i) dp[i] = INF;
  dp[0] = 1;
  for (long long i = 0; i < 26; ++i) dp[1 << i] = 1;
  int h = 0;
  for (long long i = 0; i < S.size(); ++i) {
    h ^= 1 << (S[i] - 'a');
    if (__builtin_popcount(h) > 1) dp[h]++;
    for (long long j = 0; j < 26; ++j) dp[h] = min(dp[h], dp[h ^ (1 << j)] + 1);
  }
  return dp[h];
}
int main() {
  cin >> S;
  cout << solve() << endl;
}
