#include <bits/stdc++.h>
template <class T>
bool Enlarge(T &a, T const &b) {
  return a < b ? a = b, 1 : 0;
}
const int XN = 1e6 + 11;
int main() {
  std::ios::sync_with_stdio(0);
  std::cin.tie(0);
  static char s[XN];
  std::cin >> (s + 1);
  int n = strlen(s + 1);
  static bool has[1 << 20];
  static int a[1 << 20];
  for (int i = 1; i <= n; ++i) {
    int S = 0;
    for (int j = i; j <= n && ((S >> (s[j] - 'a')) & 1) == 0; ++j)
      has[S |= 1 << (s[j] - 'a')] = 1;
  }
  for (int S = 0; S < (1 << 20); ++S)
    if (has[S]) a[S] = __builtin_popcount(S);
  for (int len = 2; len <= (1 << 20); len *= 2)
    for (int i = 0; i < (1 << 20); i += len)
      for (int j = i; j < i + len / 2; ++j) Enlarge(a[j + len / 2], a[j]);
  int Ans = 0;
  for (int S = 0; S < (1 << 20); ++S)
    Enlarge(Ans, a[S] + a[((1 << 20) - 1) ^ S]);
  std::cout << Ans << '\n';
  return 0;
}
