#include <bits/stdc++.h>
using namespace std;
int n, k;
string s;
struct node {
  node *list[26];
  node() {
    for (int i = 0; i < (int)26; i++) list[i] = NULL;
  }
} * root;
void add() {
  node *cur = root;
  for (int i = 0; i < (int)s.size(); i++) {
    int a = s[i] - 'a';
    if (cur->list[a] == NULL) cur->list[a] = new node();
    cur = cur->list[a];
  }
}
bool dfs1(node *cur) {
  bool ret = false;
  for (int i = 0; i < (int)26; i++) {
    if (cur->list[i] == NULL) continue;
    ret |= (!dfs1(cur->list[i]));
  }
  return ret;
}
bool dfs2(node *cur) {
  bool ret = false, fl = true;
  for (int i = 0; i < (int)26; i++)
    if (cur->list[i] != NULL) {
      fl = false;
      break;
    }
  if (fl) return true;
  for (int i = 0; i < (int)26; i++) {
    if (cur->list[i] == NULL) continue;
    ret |= (!dfs2(cur->list[i]));
  }
  return ret;
}
int main() {
  root = new node();
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 0; i < (int)n; i++) {
    cin >> s;
    add();
  }
  bool win = dfs1(root), lose = dfs2(root);
  if (lose & win)
    cout << "First" << endl;
  else if (!win)
    cout << "Second" << endl;
  else {
    if (k % 2)
      cout << "First" << endl;
    else
      cout << "Second" << endl;
  }
  return 0;
}
