#include <bits/stdc++.h>
using namespace std;
int n, k;
char s[100010];
struct trie {
  bool leaf;
  trie *a[26];
  trie() {
    leaf = 0;
    memset(a, 0, sizeof a);
  }
};
trie *rt = new trie();
void insert(char *s) {
  trie *r = rt;
  for (int b, i = 0; s[i]; ++i) {
    b = s[i] - 'a';
    if (r->a[b] == 0) r->a[b] = new trie();
    r = r->a[b];
  }
  r->leaf = true;
}
bool win(trie *r) {
  bool ret = 0;
  for (int i = 0; i < 26; ++i)
    if (r->a[i]) ret |= win(r->a[i]);
  return !ret;
}
bool lose(trie *r) {
  bool ret = 0;
  int c = 0;
  for (int i = 0; i < 26; ++i)
    if (r->a[i]) {
      ret |= lose(r->a[i]);
      ++c;
    }
  if (!c) return 0;
  return !ret;
}
int main(int argc, char **argv) {
  scanf("%d%d", &n, &k);
  while (n--) {
    scanf("%s", s);
    insert(s);
  }
  bool w = !win(rt);
  bool l = !lose(rt);
  if (!w)
    puts("Second");
  else if (l)
    puts("First");
  else
    puts((k & 1) ? "First" : "Second");
  return 0;
}
