#include <bits/stdc++.h>
using namespace std;
char s[100005];
int d[26];
int pre[100005][26];
long long as[26][26];
int main() {
  cin >> s + 1;
  long long ans = 0;
  int n = strlen(s + 1);
  for (int i = 1; s[i]; i++) {
    d[s[i] - 'a']++;
    memcpy(pre[i], pre[i - 1], sizeof(int) * 26);
    pre[i][s[i] - 'a']++;
  }
  for (int i = 0; i < 26; i++) ans = max(ans, 1ll * d[i]);
  ans = max(ans, ans * (ans - 1) / 2);
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < 26; j++) as[s[i] - 'a'][j] += pre[i - 1][j];
  }
  for (int i = 0; i < 26; i++)
    for (int j = 0; j < 26; j++) ans = max(ans, as[i][j]);
  cout << ans;
  return 0;
}
