#include <bits/stdc++.h>
using namespace std;
struct myTrie {
  int n = 0;
  vector<vector<int>> Adj;
  vector<unordered_set<string>> StringsEndingHere;
  vector<bool> isLeaf;
  myTrie() { AddNode(); }
  void AddNode() {
    n++;
    Adj.push_back(vector<int>(26, 0));
    StringsEndingHere.push_back(unordered_set<string>());
    isLeaf.push_back(true);
  }
  void Init(vector<string> strings) {
    for (auto it : strings) {
      Insert(it);
    }
  }
  void Insert(string query) {
    int current = 0;
    for (auto letter : query) {
      if (Adj[current][letter - 'a'] != 0) {
        current = Adj[current][letter - 'a'];
      } else {
        AddNode();
        isLeaf[current] = false;
        current = Adj[current][letter - 'a'] = Adj.size() - 1;
      }
    }
    StringsEndingHere[current].insert(query);
  }
  bool contains(string query) {
    int current = 0;
    for (auto letter : query) {
      if (Adj[current][letter - 'a'] != 0) {
        current = Adj[current][letter - 'a'];
      } else {
        return false;
      }
    }
    return (StringsEndingHere[current].count(query) > 0);
  }
  bool isPrefix(string query) {
    int current = 0;
    for (auto letter : query) {
      if (Adj[current][letter - 'a'] != 0) {
        current = Adj[current][letter - 'a'];
      } else {
        return false;
      }
    }
    return true;
  }
};
void DFS(int cur, myTrie& trie, vector<bool>& win, vector<bool>& loose) {
  if (trie.isLeaf[cur]) {
    win[cur] = false;
    loose[cur] = true;
  } else {
    for (auto it : trie.Adj[cur]) {
      if (it != 0) {
        DFS(it, trie, win, loose);
        if (!win[it]) win[cur] = true;
        if (!loose[it]) loose[cur] = true;
      }
    }
  }
}
int main() {
  std::ios::sync_with_stdio(0);
  std::cin.tie(0);
  std::cout.tie(0);
  long long n, k;
  cin >> n >> k;
  myTrie trie;
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    trie.Insert(s);
  }
  vector<bool> win(trie.n, false), loose(trie.n, false);
  DFS(0, trie, win, loose);
  if (win[0] && loose[0])
    cout << "First\n";
  else if (!win[0])
    cout << "Second\n";
  else {
    if (k % 2 == 1)
      cout << "First\n";
    else
      cout << "Second\n";
  }
}
