        #include <bits/stdc++.h>
        using namespace std;
        #define int long long
const int MAX = 510000;
const int MOD = 1000000007;


vector<pair<int,int>> k;
        signed main() {
     string s;
     cin>>s;int16_t
        int b=0;

        for(int i=0;i<s.size();i++){
                b^=1<<(s[i]-'a');
                k.push_back(make_pair(b,i));
        }
        sort(k.begin(),k.end());
        set<int> used;
        queue<pair<int,int>> que,que2;
        int count=0;
        que.push(make_pair(0,-1));
        pair<int,int> p;
          used.insert(0);
        while(true){
                if(que.empty()){
                        swap(que,que2);
                        count++;
                }
                if(b==que.front().first){
                        cout<<max(1ll,count);
                        return 0;
                }
                for(int i=0;i<='z'-'a';i++){
                        if(used.find(que.front().first^(1<<i))==used.end()){
                               used.insert(que.front().first^(1<<i));
                               p=make_pair(que.front().first^(1<<i),que.front().second);
                                auto it=lower_bound(k.begin(),k.end(),p);
                                if(it!=k.end()&&(*it).first==p.first)que2.push(*it);
                        }
                }
                que.pop();
        }

      
        


      }


        
