#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
struct Trie {
  Trie *c[26];
  bool win, lose;
};
typedef Trie *trie;
trie New() {
  trie a = new Trie();
  a->win = a->lose = 0;
  return a;
}
int n, k;
char s[N];
trie root = New();
void insert(char *s) {
  trie a = root;
  for (int i = 0; s[i]; ++i) {
    if (a->c[s[i] - 'a'] == NULL) a->c[s[i] - 'a'] = New();
    a = a->c[s[i] - 'a'];
  }
}
void DFS(trie t) {
  bool found = 0;
  for (long long i = 0; i < 26; ++i)
    if (t->c[i] != NULL) {
      found++;
      DFS(t->c[i]);
      t->win |= !t->c[i]->win;
      t->lose |= !t->c[i]->lose;
    }
  if (!found) {
    t->win = 0;
    t->lose = 1;
  }
}
int main() {
  scanf("%d%d", &n, &k);
  while (n--) {
    scanf("%s", s);
    insert(s);
  }
  DFS(root);
  if (!root->win) puts("Second");
  if (root->win && root->lose) puts("First");
  if (root->win && !root->lose) puts((k & 1) ? "First" : "Second");
  return 0;
}
