#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void smin(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
inline void smax(T &a, T b) {
  if (a < b) a = b;
}
const int maxn = 30 + 10;
int n, m;
string str[maxn];
vector<string> ss;
vector<int> adj[maxn * maxn * maxn];
pair<bool, pair<int, int> > dp[maxn * maxn * maxn];
bool mark[maxn * maxn * maxn];
int score[maxn * maxn * maxn];
pair<bool, pair<int, int> > go(int p) {
  auto &ret = dp[p];
  if (mark[p]) return ret;
  mark[p] = 1;
  ret = {0, {0, 0}};
  for (int q : adj[p]) {
    auto tmp = go(q);
    tmp.first ^= 1;
    swap(tmp.second.first, tmp.second.second);
    tmp.second.first *= -1, tmp.second.second *= -1;
    tmp.second.first += score[q];
    smax(ret, tmp);
  }
  return ret;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n;
  for (int i = 0, _n = (int)(n); i < _n; i++) cin >> str[i];
  for (int i = 0, _n = (int)(n); i < _n; i++)
    for (int ed = 0, _n = (int)(1 + (int((str[i]).size()))); ed < _n; ed++)
      for (int st = 0, _n = (int)(ed); st < _n; st++)
        ss.push_back(str[i].substr(st, ed - st));
  ss.push_back("");
  sort((ss).begin(), (ss).end());
  ss.erase(unique((ss).begin(), (ss).end()), ss.end());
  m = (int((ss).size()));
  for (int i = 0, _n = (int)(m); i < _n; i++)
    for (int j = 0, _n = (int)(m); j < _n; j++)
      if ((int((ss[j]).size())) == (int((ss[i]).size())) + 1 &&
          (ss[j].substr(0, (int((ss[i]).size()))) == ss[i] ||
           ss[j].substr(1, (int((ss[i]).size()))) == ss[i]))
        adj[i].push_back(j);
  for (int i = 0, _n = (int)(m); i < _n; i++) {
    string &t = ss[i];
    int sum = 0, mx = 0;
    for (int j = 0, _n = (int)((int((t).size()))); j < _n; j++)
      sum += t[j] - 'a' + 1, smax(mx, t[j] - 'a' + 1);
    int num = 0;
    for (int j = 0, _n = (int)(n); j < _n; j++)
      for (int k = 0,
               _n = (int)((int((str[j]).size())) - (int((t).size())) + 1);
           k < _n; k++)
        if (equal((t).begin(), (t).end(), str[j].begin() + k)) {
          num++;
          break;
        }
    score[i] = sum * mx + num;
  }
  auto ans = go(0);
  cout << (ans.first ? "First" : "Second") << endl;
  cout << ans.second.first << ' ' << -ans.second.second << endl;
  { return 0; }
}
