#include <bits/stdc++.h>

using namespace std;

const int inf=1e9;
const int N=1e5+10;


int f[N];
int ma[1<<26];
int main(){
        string s;
        cin>>s;
        int n=s.length();
        memset(ma,-1,sizeof(ma));
        ma[0]=0;
        f[0]=0;
        for(int i=1,mask=0;i<=n;i++){
                mask^=1<<(s[i-1]-'a');
                f[i]=inf;
                if (ma[mask]!=-1) f[i]=min(f[i],f[ma[mask]]+1);
                for(int j=0;j<26;j++){
                        int cmask=mask^(1<<j);
#include <bits/stdc++.h>

using namespace std;

const int inf=1e9;
const int N=1e5+10;


int f[N];
int ma[1<<26];
int main(){
        string s;
        cin>>s;
        int n=s.length();
        memset(ma,-1,sizeof(ma));
        ma[0]=0;
        f[0]=0;
        for(int i=1,mask=0;i<=n;i++){
                mask^=1<<(s[i-1]-'a');
                f[i]=inf;
                if (ma[mask]!=-1) f[i]=min(f[i],f[ma[mask]]+1);
                for(int j=0;j<26;j++){
                        int cmask=mask^(1<<j);
#include <bits/stdc++.h>

using namespace std;

const int inf=1e9;
const int N=1e5+10;


int f[N];
int ma[1<<26];
int main(){
        string s;
        cin>>s;
        int n=s.length();
        memset(ma,-1,sizeof(ma));
        ma[0]=0;
        f[0]=0;
        for(int i=1,mask=0;i<=n;i++){
                mask^=1<<(s[i-1]-'a');
                f[i]=inf;
                if (ma[mask]!=-1) f[i]=min(f[i],f[ma[mask]]+1);
                for(int j=0;j<26;j++){
                        int cmask=mask^(1<<j);
                        if (ma[cmask]!=-1) f[i]=min(f[i],f[ma[cmask]]+1);
                }
                if (ma[mask]==-1) ma[mask]=i;
        }
        //for(int i=1;i<=n;i++) cout<<f[i]<<" \n"[i==n];
        cout<<f[n];
}

