#include <bits/stdc++.h>
using namespace std;
const int MAXV = 201010;
struct node {
  int id;
  bool win, lose;
  node *next[26];
} * root, space[MAXV];
int n, m, k;
node *newNode(int id) {
  node *p = &space[m++];
  p->id = id;
  p->win = false;
  p->lose = false;
  memset(p->next, NULL, sizeof(p->next));
  return p;
}
void Insert(string str) {
  int l = str.length();
  int i = 0;
  node *q, *p = root;
  while (i < l) {
    int id = str[i] - 'a';
    if (p->next[id] == NULL) {
      q = newNode(id);
      p->next[id] = q;
    }
    p = p->next[id];
    i++;
  }
}
void solve(node *root) {
  bool flag = true;
  for (int i = 0; i < 26; i++)
    if (root->next[i] != NULL) {
      flag = false;
      solve(root->next[i]);
      root->win = root->win || !root->next[i]->win;
      root->lose = root->lose || !root->next[i]->lose;
    }
  if (flag) {
    root->win = false;
    root->lose = true;
    return;
  }
}
int main() {
  m = 0;
  root = newNode('-');
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) {
    string str;
    cin >> str;
    Insert(str);
  }
  solve(root);
  bool tWin = root->win, tLose = root->lose;
  if (tWin && tLose) {
    puts("First");
  } else if (tWin) {
    if (k & 1)
      puts("First");
    else
      puts("Second");
  } else {
    puts("Second");
  }
  return 0;
}
