#include <bits/stdc++.h>
using namespace std;
struct Trie {
  Trie *child[26];
  int words;
  Trie() {
    for (int i = 0; i < 26; i++) child[i] = NULL;
    words = 0;
  }
  ~Trie() {
    for (int i = 0; i < 26; i++) delete (child[i]);
  }
  void add(char *s) {
    if (!s[0]) {
      ++words;
      return;
    } else {
      if (!child[s[0] - 'a']) child[s[0] - 'a'] = new Trie();
      child[s[0] - 'a']->add(s + 1);
    }
  }
  int canWin() {
    for (int i = 0; i < 26; i++)
      if (child[i] && !child[i]->canWin()) return 1;
    return 0;
  }
  int canLose() {
    bool empty = true;
    for (int i = 0; i < 26; i++)
      if (child[i]) empty = false;
    if (empty) return 1;
    for (int i = 0; i < 26; i++)
      if (child[i] && !child[i]->canLose()) return 1;
    return 0;
  }
};
const int MAXN = 100005;
char s[MAXN];
int main() {
  int n, k;
  cin >> n >> k;
  Trie trie;
  for (int i = 0; i < n; i++) {
    scanf("%s", s);
    trie.add(s);
  }
  bool win = trie.canWin();
  bool lose = trie.canLose();
  if (win && lose) cout << "First";
  if (win && !lose) cout << (k % 2 ? "First" : "Second");
  if (!win && lose) cout << "Second";
  if (!win && !lose) cout << "Second";
  return 0;
}
