#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 100;
const int MAXK = 30;
const int Mod = 1e9 + 7;
bool dp[MAXN], pd[MAXN];
int sz, nx[MAXN][MAXK];
void dfs(int v) {
  bool f = true;
  for (int i = 0; i < MAXK; i++) {
    int u = nx[v][i];
    if (!u) continue;
    f = false;
    dfs(u);
    dp[v] |= !dp[u];
    pd[v] |= !pd[u];
  }
  pd[v] |= f;
}
int32_t main() {
  int n, k;
  cin >> n >> k;
  sz++;
  while (n--) {
    string s;
    cin >> s;
    int tmp = 0;
    for (auto c : s) {
      if (!nx[tmp][c - 'a']) nx[tmp][c - 'a'] = sz++;
      tmp = nx[tmp][c - 'a'];
    }
  }
  dfs(0);
  if (((dp[0] && pd[0])) || (dp[0] && (k % 2)))
    cout << "First";
  else
    cout << "Second";
}
