#include <bits/stdc++.h>
using namespace std;
using LL = long long;
using ULL = unsigned long long;
constexpr long long MOD = 1000000000 + 7;
constexpr long long INF = 1000000000;
const double PI = acos(-1);
int num_edge = 0, head[100000];
struct Edge {
  int nxt, to;
} edge[100000];
LL n, m, sum = 0, f[1000000] = {}, W[1000][1000] = {}, now = 0;
string S, str;
void add_edge(int from, int to) {
  edge[++num_edge].nxt = from;
  edge[num_edge].to = to;
  head[from] = num_edge;
}
char c;
int main() {
  cin >> S;
  for (LL i = 0; i < S.size(); i++) f[S[i] - 'a'] += 1;
  for (int i = 0; i < 30; i++)
    if (f[i] % 2 == 1) sum++;
  cout << (sum == 0 ? 1 : sum) << endl;
  return 0;
}
