#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
const int INF32 = INT_MAX;
const ll INF64 = ((ll)INF32 << 29ll);
void reflex() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr), cout.tie(nullptr);
}
struct trie {
  int next[26];
  bool leaf;
};
vector<trie> t(1e5);
vector<bool> win(1e5), lose(1e5);
int cur = 1;
void add(string s) {
  int v = 0;
  for (char c : s) {
    int x = c - 'a';
    if (!t[v].next[x]) t[v].next[x] = cur++;
    v = t[v].next[x];
  }
  t[v].leaf = true;
}
void dfs(int v = 0) {
  lose[v] = t[v].leaf;
  for (int i = 0; i < 26; i++) {
    int to = t[v].next[i];
    if (!to) continue;
    dfs(to);
    if (!win[to]) win[v] = true;
    if (!lose[to]) lose[v] = true;
  }
}
signed main() {
  reflex();
  int n, k;
  cin >> n >> k;
  for (string s; n--;) cin >> s, add(s);
  dfs();
  if (win.front() && lose.front()) cout << "First", exit(false);
  if (win.front() && !lose.front())
    cout << (k & 1 ? "First" : "Second");
  else
    cout << "Second";
  return false;
}
