#include <bits/stdc++.h>
using namespace std;
char s[100009];
struct trie {
  trie* nxt['z' - 'a' + 1];
  trie() {
    for (int i = 0; i < 'z' - 'a' + 1; ++i) {
      nxt[i] = NULL;
    }
  }
};
void addWord(trie* t) {
  trie* aux = t;
  int n = strlen(s);
  for (int i = 0; i < n; ++i) {
    int v = s[i] - 'a';
    if (aux->nxt[v] == NULL) {
      aux->nxt[v] = new trie();
    }
    aux = aux->nxt[v];
  }
}
pair<int, int> getState(trie* t) {
  int win = 0, lose = 0, cnt = 0;
  pair<int, int> aux;
  for (int i = 0; i < 'z' - 'a' + 1; ++i) {
    if (t->nxt[i] != NULL) {
      aux = getState(t->nxt[i]);
      win |= !aux.first;
      lose |= !aux.second;
      cnt = 1;
    }
  }
  return cnt ? pair<int, int>(win, lose) : pair<int, int>(0, 1);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int N, K;
  cin >> N >> K;
  trie t;
  for (int i = 0; i < N; ++i) {
    cin >> s;
    addWord(&t);
  }
  pair<int, int> state = getState(&t);
  int win = state.first, lose = state.second, winner = 1;
  if ((win && !lose && K % 2 == 0) || !win) winner = 2;
  cout << (winner == 1 ? "First\n" : "Second\n");
}
