#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 1e6 + 10, MAXM = 20;
long long N, M, f[1LL << (MAXM + 1)], ans;
char ss[MAXN];
int main() {
  scanf("%s", ss + 1);
  N = strlen(ss + 1);
  for (long long i = 1; i <= N; i++) {
    long long mk = 0;
    for (long long j = 0; j < MAXM && i + j <= N; j++) {
      long long now = ss[i + j] - 'a';
      if (mk & (1LL << now)) break;
      mk |= (1LL << now);
      f[mk] = j + 1;
    }
  }
  for (long long i = 0; i < (1LL << MAXM); i++)
    for (long long j = 0; j < MAXM; j++)
      if (i & (1LL << j)) f[i] = max(f[i], f[i ^ (1LL << j)]);
  for (long long i = 0; i < (1LL << MAXM); i++)
    ans = max(f[i] + f[i ^ ((1LL << MAXM) - 1)], ans);
  printf("%lld\n", ans);
  return 0;
}
