#include <bits/stdc++.h>
using namespace std;
const int N = 100100;
int n;
int k;
char S[N];
struct node {
  node *CH[26];
  int win;
  int lose;
  node() {
    memset(CH, 0, sizeof(CH));
    win = lose = 0;
  }
} * root, *tmp;
inline void add() {
  int len = strlen(S);
  tmp = root;
  for (int i = 0; i < len; i++) {
    if (tmp->CH[S[i] - 'a'] == NULL) tmp->CH[S[i] - 'a'] = new node;
    tmp = tmp->CH[S[i] - 'a'];
  }
}
void dfs(node *tmp) {
  bool leaf = true;
  for (int i = 0; i < 26; i++) {
    if (tmp->CH[i] == NULL) continue;
    leaf = false;
    dfs(tmp->CH[i]);
  }
  if (leaf) {
    tmp->win = 0;
    tmp->lose = 1;
  } else {
    for (int i = 0; i < 26; i++) {
      if (tmp->CH[i] == NULL) continue;
      if (!(tmp->CH[i]->win)) tmp->win = 1;
      if (!(tmp->CH[i]->lose)) tmp->lose = 1;
    }
  }
}
int main(void) {
  root = new node;
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%s", S);
    add();
  }
  dfs(root);
  if (root->win == false) {
    printf("Second\n");
  } else if (root->lose == true && root->win == true) {
    printf("First\n");
  } else {
    if (k & 1)
      printf("First\n");
    else
      printf("Second\n");
  }
  return 0;
}
