#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long double PI = acosl(-1);
const long long infl = 1e15;
const int inf = 2e9 + 5;
const int nmax = 2e5 + 10;
const int MAXLG = log2(nmax) + 1;
int tri[nmax][26], nodnum;
bool jitajabe[nmax], harajabe[nmax];
void add(string &s) {
  int cur = 0;
  for (char ch : s) {
    if (tri[cur][ch - 'a'] == -1) {
      tri[cur][ch - 'a'] = ++nodnum, cur = nodnum;
      memset(tri[cur], -1, sizeof tri[cur]);
    } else
      cur = tri[cur][ch - 'a'];
  }
}
void dfs(int cur) {
  bool ase = false;
  for (int i = 0; i < 26; i++) {
    if (tri[cur][i] != -1) {
      ase = true;
      dfs(tri[cur][i]);
    }
  }
  if (!ase) {
    jitajabe[cur] = false, harajabe[cur] = true;
    return;
  }
  bool jitum = false, harum = false;
  for (int i = 0; i < 26; i++) {
    if (tri[cur][i] != -1) {
      if (!jitajabe[tri[cur][i]]) jitum = true;
      if (!harajabe[tri[cur][i]]) harum = true;
    }
  }
  jitajabe[cur] = jitum, harajabe[cur] = harum;
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n, k;
  cin >> n >> k;
  k %= 2;
  memset(tri[0], -1, sizeof tri[0]);
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    add(s);
  }
  dfs(0);
  if (jitajabe[0] and !harajabe[0]) {
    if (k)
      cout << "First";
    else
      cout << "Second";
  } else if (jitajabe[0] and harajabe[0]) {
    cout << "First";
  } else {
    cout << "Second";
  }
}
