#include <bits/stdc++.h>
using namespace std;
struct node {
  node *child[26];
  bool win;
  bool lose;
  node() {
    for (int i = 0; i < 26; ++i) {
      child[i] = NULL;
    }
    win = false;
    lose = false;
  }
};
node *root = new node();
void inser(char *p) {
  node *r = root;
  while (*p) {
    int index = *p - 'a';
    if (r->child[index] == NULL) r->child[index] = new node();
    r = r->child[index];
    ++p;
  }
}
void cal(node *r) {
  bool hasChild = false;
  bool win_result = false;
  bool lose_result = false;
  for (int i = 0; i < 26; ++i) {
    if (r->child[i] != NULL) {
      hasChild = true;
      cal(r->child[i]);
      win_result |= !(r->child[i]->win);
      lose_result |= !(r->child[i]->lose);
    }
  }
  if (!hasChild) {
    r->win = false;
    r->lose = true;
    return;
  }
  r->win |= win_result;
  r->lose |= lose_result;
}
char str[1000000 + 10];
int main() {
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; ++i) {
    cin >> str;
    inser(str);
  }
  cal(root);
  if (!root->win) {
    cout << "Second" << endl;
  } else {
    if (root->lose) {
      cout << "First" << endl;
    } else {
      if (k & 1) {
        cout << "First" << endl;
      } else
        cout << "Second" << endl;
    }
  }
  return 0;
}
