#include <bits/stdc++.h>
using namespace std;
string s;
vector<int> A(26);
map<vector<int>, vector<int> > memo;
int main() {
  cin >> s;
  for (int i = 0; i < s.size(); i++) {
    A[s[i] - 'a'] = (A[s[i] - 'a'] + 1) % 2;
    memo[A].push_back(i);
  }
  int idx = -1, ans = 0;
  for (int i = 0; i < A.size(); i++) A[i] = 0;
  while (idx != s.size() - 1) {
    vector<int> key(26, 0);
    vector<int> B(26);
    int nidx = -1;
    if (memo.count(A)) {
      int d = memo[A][memo[A].size() - 1];
      if (idx < d) nidx = max(nidx, d), B = A;
    }
    for (int i = 0; i < 26; i++) {
      for (int j = 0; j < 26; j++) key[j] = 0;
      key[i] = 1;
      for (int j = 0; j < 26; j++) key[j] = (key[j] + A[j]) % 2;
      if (memo.count(key)) {
        int d = memo[key][memo[key].size() - 1];
        if (idx < d) nidx = max(nidx, d), B = key;
      }
    }
    for (int i = 0; i < 26; i++) A[i] = (A[i] + B[i]) % 2;
    ans++;
    idx = nidx;
  }
  cout << ans << endl;
  return 0;
}
