#include <bits/stdc++.h>
using namespace std;
const int maxc = 26;
int n, k;
struct node {
  node *child[maxc];
  node() {
    for (int i = 0; i < maxc; i++) child[i] = NULL;
  }
  void insert(string &s, int i) {
    if (i == s.size()) {
      return;
    }
    int t = s[i] - 'a';
    if (child[t] == NULL) {
      child[t] = new node();
    }
    child[t]->insert(s, i + 1);
  }
  bool has() {
    for (int i = 0; i < maxc; i++) {
      if (child[i]) return true;
    }
    return false;
  }
};
node *trie = new node();
bool check(node *root, int lose) {
  if (!root->has()) {
    return lose;
  }
  for (int i = 0; i < maxc; i++) {
    node *next = root->child[i];
    if (next && !check(next, lose)) {
      return true;
    }
  }
  return false;
}
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    trie->insert(s, 0);
  }
  if (!check(trie, 0))
    cout << "Second\n";
  else if (check(trie, 1))
    cout << "First\n";
  else
    cout << ((k & 1) ? "First" : "Second");
}
