#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  int mx = 0;
  vector<pair<pair<char, char>, int> > v;
  vector<pair<char, int> > e;
  set<char> s;
  char a[1001];
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a;
    int j;
    for (j = 0; a[j]; j++) {
      s.insert(a[j]);
    }
    set<char>::iterator it = s.begin();
    if (s.size() == 2) {
      set<char>::iterator t = s.begin();
      t++;
      v.push_back(make_pair(make_pair(*it, *t), j));
    }
    if (s.size() == 1) {
      e.push_back(make_pair(*it, j));
    }
    s.clear();
  }
  for (int i = 0; i < v.size(); i++) {
    for (int j = i + 1; j < v.size(); j++) {
      if (v[i].first.first == v[j].first.first &&
          v[i].first.second == v[j].first.second) {
        v[i].second += v[j].second;
        v.erase(v.begin() + j);
        j--;
      }
    }
  }
  for (int i = 0; i < e.size(); i++) {
    for (int j = i + 1; j < e.size(); j++) {
      if (e[i].first == e[j].first) {
        e[i].second += e[j].second;
        e.erase(e.begin() + j);
        j--;
      }
    }
  }
  for (int i = 0; i < e.size(); i++) {
    mx = max(mx, e[i].second);
    for (int j = 0; j < v.size(); j++) {
      if (e[i].first == v[j].first.first || e[i].first == v[j].first.second) {
        v[j].second += e[i].second;
      }
    }
    for (int j = i + 1; j < e.size(); j++) {
      mx = max(mx, e[i].second + e[j].second);
    }
  }
  for (int i = 0; i < v.size(); i++) {
    mx = max(mx, v[i].second);
  }
  cout << mx;
}
