#include <vector> 
#include <list> 
#include <map> 
#include <set> 
#include <deque> 
#include <queue> 
#include <stack> 
#include <bitset> 
#include <algorithm> 
#include <functional> 
#include <numeric> 
#include <utility> 
#include <sstream> 
#include <iostream> 
#include <iomanip> 
#include <cstdio> 
#include <cmath> 
#include <cstdlib> 
#include <cctype> 
#include <string> 
#include <cstring> 
#include <ctime> 

using namespace std;

#define _int64 long long

char s[210000];
short ma[1<<26];
int used[1<<26];

int main()
{
  int i,l,now,tmp,bma,btmp,ans,j,x,y;
  vector<int> q;
  scanf("%s",s);
  l=strlen(s);
  now=0;
  memset(ma,0,sizeof(ma));
  ma[0]=1;
  for (i=0;i<l;i++)
  {
    now^=(1<<(s[i]-'a'));
    ma[now]=1;
  }
  if (now==0)
  {
    ans=1;
  }
  else
  {
    q.clear();
    q.push_back(0);
    memset(used,-1,sizeof(used));
    used[0]=0;
    for (i=0;i<q.size();i++)
    {
      x=q[i];
      for (j=0;j<26;j++)
      {
        y=(x^(1<<j));
        if ((used[y]==-1)&&(ma[y]!=0))
        {
          used[y]=used[x]+1;
          q.push_back(y);
        }
      /*
      if ((used[x]==-1)&&(ma[x]!=0))
      {
        used[x]=1;
        q.push_back(x);
      }
      */
    }
    ans=used[now];
  }
  printf("%d\n",ans);
  return 0;
}