#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 1;
string s;
int n, f[maxn], d[maxn], id[70 * 5 * maxn];
void OpenFile() {
  freopen(
      "Yet Another Palindrome Partitioning"
      ".INP",
      "r", stdin);
  freopen(
      "Yet Another Palindrome Partitioning"
      ".OUT",
      "w", stdout);
}
void Enter() {
  cin >> s;
  n = s.size();
  s = ' ' + s;
}
void Init() {
  for (int i = 1; i <= n; ++i) {
    f[i] = f[i - 1] ^ (1 << (s[i] - 'a'));
    id[f[i]] = i;
  }
}
void Solve() {
  fill(d, d + n + 2, n + 1);
  for (int i = 0; i <= n; ++i) {
    for (int j = -1; j < 26; ++j) {
      int k = id[f[i] ^ (1 << j)];
      if (k > i)
        if (i != 0)
          d[k] = min(d[k], d[i] + 1);
        else
          d[k] = 1;
    }
  }
  cout << d[n];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  Enter();
  Init();
  Solve();
}
