#include <bits/stdc++.h>
using namespace std;
string s;
int data[200010][26] = {};
int Func(int f, int l) {
  if (f >= s.size() - 1) return 1;
  if (f >= l) return 1 + Func(l + 1, s.size() - 1);
  int kisu = 0;
  for (int i = 0; i < 26; ++i) {
    if ((data[l + 1][i] - data[f][i]) % 2 == 1) {
      ++kisu;
    }
  }
  if (kisu <= 1) {
    if (l >= s.size() - 1) return 1;
    return 1 + Func(l + 1, s.size() - 1);
  }
  return Func(f, l - 1);
}
int Func2(int f, int l) {
  if (l <= 0) return 1;
  if (f >= l) return 1 + Func2(0, l - 1);
  int kisu = 0;
  for (int i = 0; i < 26; ++i) {
    if ((data[l + 1][i] - data[f][i]) % 2 == 1) {
      ++kisu;
    }
  }
  if (kisu <= 1) {
    if (f <= 0) return 1;
    return 1 + Func2(0, f - 1);
  }
  return Func2(f + 1, l);
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin >> s;
  data[1][int(s[0] - 'a')]++;
  for (size_t i = 1; i < s.size(); ++i) {
    for (int j = 0; j < 26; ++j) {
      data[i + 1][j] += data[i][j];
    }
    data[i + 1][int(s[i] - 'a')]++;
  }
  cout << min(Func(0, s.size() - 1), Func2(0, s.size() - 1)) << endl;
  return 0;
}
