#include <bits/stdc++.h>
using namespace std;
using LL = long long;
constexpr LL LINF = 334ll << 53;
constexpr int INF = 15 << 26;
constexpr LL MOD = 1E9 + 7;
struct Problem {
  string s;
  map<int, int> m;
  Problem(string s) : s(s){};
  void solve() {
    int cnt = 0;
    for (int i = 0; i < (int)s.size(); ++i) {
      cnt ^= (1 << (s[i] - 'a'));
      m[cnt] = 1;
    }
    if (!cnt) {
      cout << 1 << "\n";
      return;
    }
    queue<pair<int, int>> Q;
    Q.emplace(0, 0);
    while (1) {
      auto now = Q.front();
      Q.pop();
      for (int i = 0; i < 26; ++i) {
        if ((now.first ^ (1 << i)) == cnt) {
          cout << now.second + 1 << endl;
          return;
        }
        auto it = m.find(now.first ^ (1 << i));
        if (it != m.end()) {
          Q.emplace(it->first, now.second + 1);
          m.erase(it);
        }
      }
    }
  }
};
int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(false);
  string s;
  cin >> s;
  Problem p(s);
  p.solve();
  return 0;
}
