#include <bits/stdc++.h>
using namespace std;
const int MAXNODE = 110005;
const int KIND = 26;
struct Node {
  bool end;
  int next[KIND];
  void init() {
    end = false;
    memset(next, -1, sizeof(next));
  }
};
Node node[MAXNODE];
int sz;
char str[MAXNODE];
void Init() {
  sz = 0;
  node[0].init();
}
void InsertWord(const char *str) {
  int p = 0;
  for (int i = 0, index; str[i]; i++) {
    index = str[i] - 'a';
    if (node[p].next[index] == -1) {
      node[p].next[index] = ++sz;
      node[sz].init();
    }
    p = node[p].next[index];
  }
  node[p].end = true;
}
bool Dfs(int p, bool laststatus) {
  bool end = true;
  for (int k = 0; k < KIND; k++) {
    if (node[p].next[k] == -1) continue;
    end = false;
    if (!Dfs(node[p].next[k], laststatus)) return true;
  }
  if (end) return laststatus;
  return false;
}
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  Init();
  for (int i = 0; i < n; i++) {
    scanf("%s", str);
    InsertWord(str);
  }
  bool forcewin = Dfs(0, false);
  bool forcelose = Dfs(0, true);
  if (forcewin && forcelose)
    puts("First");
  else if (forcewin)
    puts((k & 1) ? "First" : "Second");
  else
    puts("Second");
  return 0;
}
