#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
bool lose[MAXN], win[MAXN];
int sz = 1, cnt[MAXN][26];
void Insert(string s) {
  int u = 1, len = s.size();
  for (int i = 0; i < len; i++) {
    int v = s[i] - 'a';
    if (!cnt[u][v]) cnt[u][v] = ++sz;
    u = cnt[u][v];
  }
}
void dfs(int v) {
  win[v] = false;
  lose[v] = false;
  bool isLeaf = true;
  for (int i = 0; i < 26; i++) {
    if (cnt[v][i] != 0) {
      isLeaf = false;
      int to = cnt[v][i];
      dfs(to);
      win[v] |= !win[to];
      lose[v] |= !lose[to];
    }
  }
  if (isLeaf) {
    lose[v] = true;
  }
}
void slove(bool ans) { printf("%s\n", ans ? "First" : "Second"); }
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    Insert(s);
  }
  dfs(1);
  if (!win[1] || lose[1] || k & 1)
    slove(win[1]);
  else
    slove(!win[1]);
}
