import core.bitop;
import std.algorithm;
import std.array;
import std.ascii;
import std.container;
import std.conv;
import std.format;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

void main()
{
  string str = readln.chomp;
  int n = cast(int) str.length;
  int[] a = new int[](n + 1);
  foreach (i; 0..n) {
    a[i + 1] = a[i] ^ (1 << (str[i] - 'a'));
  }
  int[] dp = new int[](1 << 26);
  dp[] = int.max >> 2;
  dp[0] = 0;
  foreach (i; 1..n + 1) {
    int opt = dp[a[i]];
    foreach (j; 0..26) {
      opt = min(opt, dp[a[i] ^ (1 << j)]);
    }
    // stderr.writeln(format("%02d", i), " ", format("%026b", a[i]), " ", opt);
    dp[a[i]] = min(dp[a[i]], opt + 1);
  }
  dp[a[n]].max(1).writeln;
}
