#include <bits/stdc++.h>
using namespace std;
const int N = 27004;
int n;
string s;
set<pair<int, string> > sv;
map<string, int> mc, mi;
vector<string> v;
vector<int> vs[N];
int vi[N], aq[N][2], vm[N], mx[N], jm[N], qs[N];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  for (int i = 1; i <= n; ++i) {
    cin >> s;
    set<string> se;
    for (int j = 0; j < s.size(); ++j) {
      for (int k = j; k < s.size(); ++k) {
        se.insert(s.substr(j, k - j + 1));
      }
    }
    for (auto it = se.begin(); it != se.end(); ++it) {
      sv.insert({(*it).size(), *it});
      ++mc[*it];
    }
  }
  v.push_back("");
  for (auto it = sv.begin(); it != sv.end(); ++it) {
    mi[(*it).second] = v.size();
    v.push_back((*it).second);
  }
  for (int i = (int)v.size() - 1; i >= 0; --i) {
    s = v[i];
    qs[i] = mc[s];
    for (int j = 0; j < s.size(); ++j) {
      mx[i] = max(mx[i], s[j] - 'a' + 1);
      jm[i] += s[j] - 'a' + 1;
    }
    if (s.size()) {
      vs[mi[s.substr(0, (int)s.size() - 1)]].push_back(i);
      vs[mi[s.substr(1, (int)s.size() - 1)]].push_back(i);
    }
    vm[i] = (((int)s.size() & 1) ^ 1);
    if (vs[i].size()) {
      pair<int, pair<int, int> > mxx = {-1, {0, 0}};
      for (int j = 0; j < vs[i].size(); ++j) {
        mxx = max(mxx, {vm[i] ^ vi[vs[i][j]],
                        {aq[vs[i][j]][vm[i] ^ 1], -aq[vs[i][j]][vm[i]]}});
      }
      vi[i] = mxx.first ^ vm[i];
      aq[i][vm[i] ^ 1] = mxx.second.first;
      aq[i][vm[i]] = jm[i] * mx[i] + qs[i] - mxx.second.second;
    } else {
      vi[i] = vm[i];
      aq[i][vm[i]] = jm[i] * mx[i] + qs[i];
    }
  }
  cout << (vector<string>){"First", "Second"}[vi[0]] << "\n"
       << aq[0][0] << " " << aq[0][1] << endl;
  return 0;
}
