#include <bits/stdc++.h>
using namespace std;
char dizi[100005];
long long h[10000];
long long mx;
int main() {
  scanf("%s", &dizi);
  for (int i = 0; i < strlen(dizi); i++) h[dizi[i]]++;
  for (char i = 'a'; i <= 'z'; i++) {
    mx = max(mx, h[i]);
  }
  for (char i = 'a'; i <= 'z'; i++) {
    for (char j = 'a'; j <= 'z'; j++) {
      long long curCevap = 0;
      long long sayac = 0;
      for (int k = strlen(dizi) - 1; k >= 0; k--) {
        if (dizi[k] == i) curCevap += sayac;
        if (dizi[k] == j) sayac++;
      }
      mx = max(mx, curCevap);
    }
  }
  printf("%lld", mx);
}
