#include <bits/stdc++.h>
struct Node {
  bool win, lose;
  int next[27];
} a[100007];
int tot;
char str[100007];
void newNode(Node &node) {
  for (int i = 0; i < 27; ++i) node.next[i] = -1;
}
void insert(int t, int p, int len) {
  if (p >= len) {
    return;
  }
  int x = str[p] - 'a';
  if (a[t].next[x] == -1) {
    newNode(a[++tot]);
    a[t].next[x] = tot;
  }
  insert(a[t].next[x], p + 1, len);
}
void dfs(int t) {
  int i, s;
  bool son = false;
  for (i = 0; i < 27; ++i)
    if ((s = a[t].next[i]) != -1) {
      son = true;
      dfs(s);
    }
  a[t].win = false, a[t].lose = true;
  if (!son) return;
  a[t].lose = false;
  for (i = 0; i < 27; ++i)
    if ((s = a[t].next[i]) != -1) {
      a[t].win |= !a[s].win;
      a[t].lose |= !a[s].lose;
    }
}
int main() {
  int n, k, i;
  bool flag;
  scanf("%d%d", &n, &k);
  tot = 0;
  newNode(a[0]);
  for (i = 0; i < n; ++i) {
    scanf(" %s", str);
    insert(0, 0, strlen(str));
  }
  dfs(0);
  if (!a[0].win) {
    flag = false;
  } else {
    if (a[0].lose) {
      flag = true;
    } else {
      flag = (k & 1) == 1 ? true : false;
    }
  }
  puts(flag ? "First" : "Second");
  return 0;
}
