#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100001;
const int ALPH = 26;
int n, k;
char str[MAXN];
int tsize = 1;
int tree[MAXN][ALPH];
bool res[MAXN][2];
void solve(int v) {
  bool leaf = true;
  for (int c = 0; c < ALPH; c++) {
    int nv = tree[v][c];
    if (nv == 0) continue;
    leaf = false;
    solve(nv);
    res[v][0] |= !res[nv][0];
    res[v][1] |= !res[nv][1];
  }
  if (leaf) {
    res[v][1] = true;
    return;
  }
}
int main() {
  scanf("%d%d\n", &n, &k);
  for (int i = 0; i < n; i++) {
    fgets(str, MAXN, stdin);
    int cv = 0;
    for (int j = 0; str[j] && str[j] != '\n'; j++) {
      int c = str[j] - 'a';
      if (tree[cv][c] == 0) {
        tree[cv][c] = tsize++;
      }
      cv = tree[cv][c];
    }
  }
  solve(0);
  bool is_first;
  if (res[0][0] && res[0][1]) {
    is_first = true;
  } else if (res[0][0]) {
    is_first = (k % 2 == 1);
  } else {
    is_first = false;
  }
  printf("%s\n", is_first ? "First" : "Second");
  return 0;
}
