#include <bits/stdc++.h>
using namespace std;
const int M = 1e5 + 10;
struct TnT {
  TnT *next[27];
  int vis;
  TnT() : vis(0) { memset(next, 0, sizeof(next)); }
};
int k;
void build(TnT *root, char s[]) {
  int len = strlen(s);
  TnT *p = root;
  for (int i = 0; i < len; i++) {
    int id = s[i] - 'a';
    if (p->next[id] == NULL) {
      p->next[id] = new TnT();
    }
    p = p->next[id];
    p->vis++;
  }
}
void de(TnT *root) {
  if (root == NULL) return;
  for (int i = 0; i < 26; i++) de(root->next[i]);
  delete root;
}
void find(TnT *root, int &x, int &y) {
  TnT *p = root;
  x = 0, y = 0;
  int u, v;
  bool flag = true;
  for (int i = 0; i < 26; i++) {
    if (p->next[i]) {
      flag = false;
      find(root->next[i], u, v);
      if (!u) x = 1;
      if (!v) y = 1;
    }
  }
  if (flag) x = 0, y = 1;
}
char s[M];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  TnT *root = new TnT();
  for (int i = 0; i < n; i++) {
    scanf("%s", s);
    build(root, s);
  }
  int x, y;
  find(root, x, y);
  de(root);
  if (x && y)
    puts("First");
  else if ((m & 1) && x)
    puts("First");
  else
    puts("Second");
  return 0;
}
