#include <bits/stdc++.h>
using namespace std;
int t[100005][26];
int sz;
int n, k, root;
bool w[100005];
bool l[100005];
int novi() { return ++sz; }
void dodaj(string s) {
  int le = s.size();
  int v = root;
  for (int i = 0; i < le; i++) {
    int c = s[i] - 'a';
    if (t[v][c] == 0) t[v][c] = novi();
    v = t[v][c];
  }
}
void dfs(int v) {
  w[v] = false;
  l[v] = false;
  bool list = true;
  for (int i = 0; i < 26; i++) {
    if (t[v][i] != 0) {
      list = false;
      int to = t[v][i];
      dfs(to);
      w[v] |= !w[to];
      l[v] |= !l[to];
    }
  }
  if (list) l[v] = true;
}
void ans(bool b) {
  cout << (b ? "First" : "Second");
  exit(0);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cerr.tie(0);
  cin >> n >> k;
  root = novi();
  for (int i = 1; i <= n; i++) {
    string x;
    cin >> x;
    dodaj(x);
  }
  dfs(root);
  if (k == 1)
    ans(w[root]);
  else if (!w[root])
    ans(w[root]);
  else if (l[root])
    ans(w[root]);
  else if (k % 2 == 1)
    ans(w[root]);
  else
    ans(!w[root]);
  return 0;
}
