#include <bits/stdc++.h>
using namespace std;
int trie[100010][30];
bool win[100010];
bool lose[100010];
int n, k;
char s[100010];
int cont;
void add(string s) {
  int node = 0;
  for (int i = 0; i < s.size(); i++) {
    int c = s[i] - 'a';
    if (trie[node][c] < 0) trie[node][c] = ++cont;
    node = trie[node][c];
  }
}
void init() {
  memset(trie, -1, sizeof trie);
  memset(win, 0, sizeof win);
  memset(lose, 0, sizeof lose);
  cont = 0;
}
void calc(int node = 0) {
  bool childs = false;
  for (int i = 0; i < 30; i++) {
    int next = trie[node][i];
    if (next < 0) continue;
    childs = true;
    calc(next);
    win[node] |= !win[next];
    lose[node] |= !lose[next];
  }
  if (!childs) lose[node] = true;
}
int main() {
  while (scanf("%d%d", &n, &k) == 2) {
    init();
    for (int i = 0; i < n; i++) scanf("%s", s), add(s);
    calc();
    string resp;
    if (!win[0]) resp = "Second";
    if (win[0] && lose[0]) resp = "First";
    if (win[0] && !lose[0]) resp = (k & 1 ? "First" : "Second");
    printf("%s\n", resp.c_str());
  }
  return 0;
}
