#include <bits/stdc++.h>
const double eps = 1e-7, PI = 3.1415926;
const int N = 1e6 + 10;
using namespace std;
int n, q, m, k, x, y, a[N], mx = -1, mn = 1e9, sum;
string s, s1, s2;
map<string, pair<int, pair<int, int> > > mp;
map<string, int> fr;
vector<int> vec;
pair<int, pair<int, int> > dp(string s, int sum = 0, int mx = 0) {
  if (mp.count(s)) return mp[s];
  pair<int, pair<int, int> > ret;
  for (char c = 'a'; c <= 'z'; c++) {
    int val = c - 'a' + 1;
    int new_sum = sum + val;
    int new_mx = max(mx, val);
    if (fr.count(s + c)) {
      int score = new_sum * new_mx + fr[s + c];
      auto f = dp(s + c, new_sum, new_mx);
      ret =
          max(ret, {f.first ^ 1, {-f.second.second + score, -f.second.first}});
    }
    if (fr.count(c + s)) {
      int score = new_sum * new_mx + fr[c + s];
      auto f = dp(c + s, new_sum, new_mx);
      ret =
          max(ret, {f.first ^ 1, {-f.second.second + score, -f.second.first}});
    }
  }
  return mp[s] = ret;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> s;
    set<string> st;
    for (int j = 0; j < s.size(); j++) {
      for (int len = 1; j + len <= s.size(); len++) {
        st.insert(s.substr(j, len));
      }
    }
    for (auto x : st) fr[x]++;
  }
  auto ans = dp("");
  if (!ans.first)
    cout << "Second" << endl;
  else
    cout << "First" << endl;
  cout << abs(ans.second.first) << " " << abs(ans.second.second);
  return 0;
}
