#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10, maxl = 30;
int n, k;
struct node {
  node *ch[maxl];
  node() {
    for (int i = 0; i < maxl; i++) ch[i] = NULL;
  }
};
struct trie {
  node *root;
  trie() { root = new node(); }
  void insert(string s) {
    node *cur = root;
    for (char c : s) {
      c -= 'a';
      if (cur->ch[c] == NULL) cur->ch[c] = new node;
      cur = cur->ch[c];
    }
  }
  pair<int, int> dfs(node *cur) {
    bool win = false, lose = false, done = false;
    for (int i = 0; i < maxl; i++)
      if (cur->ch[i] != NULL) {
        done = true;
        auto x = dfs(cur->ch[i]);
        win |= !x.first;
        lose |= !x.second;
      }
    if (!done)
      return {false, true};
    else
      return {win, lose};
  }
};
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> k;
  trie t;
  string s;
  for (int i = 0; i < n; i++) cin >> s, t.insert(s);
  auto x = t.dfs(t.root);
  if (x == make_pair(1, 1)) return cout << "First", 0;
  if (x.first == false) return cout << "Second", 0;
  cout << (k & 1 ? "First" : "Second");
  return 0;
}
