#include <bits/stdc++.h>
using namespace std;
const int max_n = 100010;
int x;
int adj[max_n][26];
bool win[max_n];
bool lose[max_n];
void add(string str, int v, int pos) {
  if (pos == str.length()) return;
  int u = adj[v][str[pos] - 'a'];
  if (u == 0) {
    x++;
    u = adj[v][str[pos] - 'a'] = x;
  }
  add(str, u, pos + 1);
}
void dfs(int v) {
  bool leaf = true;
  for (int i = 0; i < 26; i++) {
    int u = adj[v][i];
    if (u) {
      leaf = false;
      dfs(u);
      lose[v] = (lose[v] | (!lose[u]));
      win[v] = (win[v] | (!win[u]));
    }
  }
  if (leaf) lose[v] = true;
}
int main() {
  int n, k;
  cin >> n >> k;
  string res[2] = {"First", "Second"};
  for (int i = 0; i < n; i++) {
    string str;
    cin >> str;
    add(str, 0, 0);
  }
  dfs(0);
  if (k == 1)
    cout << res[!(win[0])] << endl;
  else if (win[0] == 0)
    cout << res[1] << endl;
  else if (win[0] == 1 && lose[0] == 1)
    cout << res[0] << endl;
  else if (win[0] == 1 && lose[0] == 0) {
    if (k % 2 == 0)
      cout << res[1] << endl;
    else
      cout << res[0] << endl;
  }
  return 0;
}
