#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr int INF = 1e9;
constexpr long long LINF = 1e18;
constexpr long long MOD = 1e9 + 7;
int mn[1 << 26];
signed main() {
  string s;
  cin >> s;
  int n = s.size();
  int cur = 0;
  int dp[n + 1];
  fill(dp, dp + n + 1, INF);
  fill(mn, mn + (1 << 26), INF);
  dp[0] = 0;
  mn[0] = 0;
  for (int i = 0; i < n; i++) {
    cur ^= 1 << (s[i] - 'a');
    if (mn[cur] != INF) dp[i + 1] = min(dp[i + 1], dp[mn[cur]] + 1);
    for (int c = 0; c < 26; c++) {
      int nxt = cur ^ (1 << c);
      if (mn[nxt] != INF) dp[i + 1] = min(dp[i + 1], dp[mn[nxt]] + 1);
    }
    mn[cur] = min(mn[cur], i + 1);
  }
  cout << dp[n] << endl;
  return 0;
}
