#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
int n;
int m;
vector<string> dic[31];
map<string, int> all[31];
int cnt[31][1001], ct, cwas[31][1001];
int was[31][1001];
pair<int, pair<int, int> > res[31][1001];
pair<int, pair<int, int> > go(int i, int j) {
  if (was[i][j]) return res[i][j];
  was[i][j] = 1;
  int tmp = 0, a = 0, b = 0;
  for (int c = 'a'; c <= 'z'; c++) {
    string sc = "";
    sc += c;
    if (all[i + 1].count(sc + dic[i][j])) {
      pair<int, pair<int, int> > cur = go(i + 1, all[i + 1][sc + dic[i][j]]);
      swap(cur.second.first, cur.second.second);
      if (tmp == 0 && cur.first == 0 ||
          tmp == 1 && cur.first == 0 &&
              (cur.second.first > a ||
               cur.second.first == a && cur.second.second < b)) {
        tmp = 1;
        a = cur.second.first;
        b = cur.second.second;
      }
      if (tmp == 0 && cur.first == 1 &&
          (cur.second.first > a ||
           cur.second.first == a && cur.second.second < b)) {
        a = cur.second.first;
        b = cur.second.second;
      }
    }
    if (all[i + 1].count(dic[i][j] + sc)) {
      pair<int, pair<int, int> > cur = go(i + 1, all[i + 1][dic[i][j] + sc]);
      swap(cur.second.first, cur.second.second);
      if (tmp == 0 && cur.first == 0 ||
          tmp == 1 && cur.first == 0 &&
              (cur.second.first > a ||
               cur.second.first == a && cur.second.second < b)) {
        tmp = 1;
        a = cur.second.first;
        b = cur.second.second;
      }
      if (tmp == 0 && cur.first == 1 &&
          (cur.second.first > a ||
           cur.second.first == a && cur.second.second < b)) {
        a = cur.second.first;
        b = cur.second.second;
      }
    }
  }
  int sum = 0, mx = 0;
  for (int k = 0; k < ((int)(dic[i][j]).size()); k++) {
    sum += dic[i][j][k] - 'a' + 1;
    mx = max(mx, dic[i][j][k] - 'a' + 1);
  }
  b += sum * mx + cnt[i][j];
  res[i][j] = make_pair(tmp, make_pair(a, b));
  return res[i][j];
}
int add(int l, string s) {
  if (all[l].count(s)) {
    if (cwas[l][all[l][s]] < ct) {
      cnt[l][all[l][s]]++;
      cwas[l][all[l][s]] = ct;
    }
    return 0;
  }
  cnt[l][((int)(dic[l]).size())] = 1;
  all[l][s] = ((int)(dic[l]).size());
  cwas[l][all[l][s]] = ct;
  dic[l].push_back(s);
  return 0;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    ct++;
    string s;
    cin >> s;
    for (int i = 0; i < ((int)(s).size()); i++)
      for (int j = i; j < ((int)(s).size()); j++)
        add(j - i, s.substr(i, j - i + 1));
  }
  int tmp = 0, a = -1, b = 0;
  for (int i = 0; i < ((int)(dic[0]).size()); i++) {
    pair<int, pair<int, int> > cur = go(0, i);
    swap(cur.second.first, cur.second.second);
    if (tmp == 0 && cur.first == 0 ||
        tmp == 1 && cur.first == 0 &&
            (cur.second.first > a ||
             cur.second.first == a && cur.second.second < b)) {
      tmp = 1;
      a = cur.second.first;
      b = cur.second.second;
    }
    if (tmp == 0 && cur.first == 1 &&
        (cur.second.first > a ||
         cur.second.first == a && cur.second.second < b)) {
      a = cur.second.first;
      b = cur.second.second;
    }
  }
  if (!tmp)
    printf("Second\n");
  else
    printf("First\n");
  printf("%d %d\n", a, b);
  return 0;
}
