#include <bits/stdc++.h>
using namespace std;
int n;
string s[33];
map<string, pair<bool, pair<int, int> > > F;
int cnt(string x) {
  int S = 0;
  for (int i = 0; i < n; i++)
    if (s[i].find(x) != -1) S++;
  return S;
}
pair<bool, pair<int, int> > ff(string x) {
  if (F.find(x) != F.end()) return F[x];
  pair<bool, pair<int, int> > S;
  int ss = 0, ma = 0;
  for (auto c : x) {
    ss += c - 'a' + 1;
    ma = max(ma, c - 'a' + 1);
  }
  for (int i = 0; i < 26 * 2; i++) {
    string y;
    int c = i % 26;
    if (i < 26) {
      y = string(1, (char)('a' + c)) + x;
    } else {
      y = x + string(1, (char)('a' + c));
    }
    int z = cnt(y);
    if (!z) continue;
    int score = (ss + c + 1) * max(ma, c + 1) + z;
    auto T = ff(y);
    auto U =
        make_pair(!T.first, make_pair(T.second.second + score, T.second.first));
    if (S.first < U.first ||
        S.first == U.first && S.second.first < U.second.first ||
        S.first == U.first && S.second.first == U.second.first &&
            S.second.second > U.second.second) {
      S = U;
    }
  }
  return F[x] = S;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> s[i];
  auto S = ff("");
  puts(S.first ? "First" : "Second");
  printf("%d %d\n", S.second.first, S.second.second);
  return 0;
}
