#include <bits/stdc++.h>
using namespace std;
long long n, k, ans;
unordered_map<string, bool> prefixes;
bool isPrefix(string s) { return prefixes.count(s); }
bool tryToWin(string s) {
  bool curr = 0;
  for (int i = 0; i < 26; i++) {
    s.push_back(char('a' + i));
    if (isPrefix(s)) {
      if (!tryToWin(s)) return 1;
    }
    s.pop_back();
  }
  return curr;
}
bool tryToLose(string s) {
  bool curr = 0, possibleTransition = 0;
  for (int i = 0; i < 26; i++) {
    s.push_back(char('a' + i));
    if (isPrefix(s)) {
      if (!tryToLose(s)) return 1;
      possibleTransition = 1;
    }
    s.pop_back();
  }
  if (!possibleTransition) curr = 1;
  return curr;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cin >> n >> k;
  prefixes[""]++;
  for (int i = 0; i < n; i++) {
    string s, t = "";
    cin >> s;
    for (int i = 0; i < s.size(); i++) {
      t.push_back(s[i]);
      prefixes[t]++;
    }
  }
  bool winnerIfWin = tryToWin("");
  bool winnerIfLose = tryToLose("");
  if (winnerIfWin == 1 && winnerIfLose == 1) cout << "First" << endl;
  if (winnerIfWin == 1 && winnerIfLose == 0)
    cout << (k % 2 ? "First" : "Second") << endl;
  if (winnerIfWin == 0 && winnerIfLose == 1) cout << "Second" << endl;
  if (winnerIfWin == 0 && winnerIfLose == 0) cout << "Second" << endl;
}
