#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int base = 100;
const int base1 = 31;
set<pair<long long, long long> > S1[35], S2[35];
map<pair<long long, long long>, int> M1;
map<pair<long long, long long>, pair<int, int> > M2;
string s[30];
vector<int> G[30000];
pair<int, pair<int, int> > sc[30000];
pair<long long, long long> arr[30000];
int used[30000];
void dfs(int v) {
  used[v] = 1;
  pair<int, pair<int, int> > p = make_pair(0, make_pair(0, 0));
  for (int i = 0; i < G[v].size(); ++i) {
    int to = G[v][i];
    if (used[to] == 0) dfs(to);
    if (p < sc[to]) p = sc[to];
  }
  p.first = 1 - p.first;
  swap(p.second.second, p.second.first);
  p.second.second *= -1;
  p.second.first *= -1;
  p.second.first += M2[arr[v]].second;
  sc[v] = p;
}
int main() {
  int n, y, b, c;
  long long x, x1, z, z1;
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    cin >> s[i];
    for (int j = 0; j < int((s[i]).size()); ++j)
      for (int k = j; k < int((s[i]).size()); ++k) {
        x = 0;
        b = 0;
        c = 0;
        x1 = 0;
        for (int a = j; a < k + 1; ++a) {
          x = (x * base + s[i][a] - 'a' + 1) % mod;
          x1 = (x1 * base1 + s[i][a] - 'a' + 1) % mod;
          y = s[i][a] - 'a' + 1;
          b += y;
          c = max(c, y);
        }
        S1[k - j + 1].insert(make_pair(x, x1));
        S2[i].insert(make_pair(x, x1));
        M1[make_pair(x, x1)]++;
        M2[make_pair(x, x1)] = make_pair(k - j + 1, b * c);
      }
  }
  y = 1;
  for (typeof(M1.begin()) it = M1.begin(); it != M1.end(); it++) {
    (it)->second = y;
    arr[y] = (it)->first;
    y++;
  }
  pair<long long, long long> ex;
  for (typeof(M1.begin()) it = M1.begin(); it != M1.end(); it++) {
    ex = (it)->first;
    y = (it)->second;
    x = ex.first;
    x1 = ex.second;
    b = M2[ex].first;
    for (int i = 0; i < 26; ++i) {
      z = (x * base + i + 1) % mod;
      z1 = (x1 * base1 + i + 1) % mod;
      if (M1.count(make_pair(z, z1))) G[y].push_back(M1[make_pair(z, z1)]);
      z = 1 + i;
      z1 = 1 + i;
      for (int j = 0; j < b; ++j) {
        z = (z * base) % mod;
        z1 = (z1 * base1) % mod;
      }
      z = (z + x) % mod;
      z1 = (z1 + x1) % mod;
      if (M1.count(make_pair(z, z1))) G[y].push_back(M1[make_pair(z, z1)]);
    }
    c = 0;
    for (int i = 0; i < n; ++i) {
      if (((S2[i]).find(ex) != (S2[i]).end())) c++;
    }
    M2[ex].second += c;
  }
  pair<long long, long long> zero = make_pair(0, 0);
  M1[zero] = 0;
  for (int i = 0; i < 26; ++i) {
    z = 1 + i;
    if (M1.count(make_pair(z, z))) G[0].push_back(M1[make_pair(z, z)]);
  }
  arr[0] = zero;
  M2[zero] = make_pair(0, 0);
  memset(used, 0, sizeof(used));
  dfs(0);
  pair<int, pair<int, int> > p = sc[0];
  if (p.first == 0) {
    printf("First\n");
  } else
    printf("Second\n");
  printf("%d %d\n", -p.second.second, p.second.first);
  return 0;
}
