#include <bits/stdc++.h>
using namespace std;
const int MX = 2000000;
const long long inf = 1e18;
const long long mod = 1e9 + 7;
struct node {
  int in[26];
  node() { memset(in, -1, sizeof(in)); }
};
node T[MX];
int av;
void add(string s) {
  int p = 0;
  for (int i = 0; i < s.size(); i++) {
    int id = s[i] - 'a';
    if (T[p].in[id] == -1) T[p].in[id] = ++av;
    p = T[p].in[id];
  }
}
int dp[MX], dp2[MX];
void dfs(int x) {
  bool flg = 0, flg2 = 0;
  int cn = 0, cn2 = 0;
  for (int i = 0; i < 26; i++) {
    if (T[x].in[i] != -1) {
      flg2 = 1;
      cn++;
      dfs(T[x].in[i]);
      if (dp[T[x].in[i]] == 0) cn2++;
    }
  }
  if (cn == cn2)
    dp[x] = 1;
  else
    dp[x] = 0;
  if (!flg2) dp[x] = 1;
}
void dfs2(int x) {
  bool flg2 = 0, flg = 0;
  int cn = 0, cn2 = 0;
  for (int i = 0; i < 26; i++) {
    if (T[x].in[i] != -1) {
      flg2 = 1;
      cn++;
      dfs2(T[x].in[i]);
      if (dp2[T[x].in[i]] == 1) cn2++;
    }
  }
  if (cn == cn2)
    dp2[x] = 0;
  else
    dp2[x] = 1;
  if (!flg2) dp2[x] = 1;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, k;
  cin >> n >> k;
  memset(T, -1, sizeof(T));
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    add(s);
  }
  dfs(0);
  dfs2(0);
  bool flg = 0, flg2 = 0;
  for (int i = 0; i < 26; i++)
    if (T[0].in[i] != -1)
      flg |= (dp[T[0].in[i]]), flg2 |= (dp2[T[0].in[i]] == 0);
  if (flg == 0)
    cout << "Second" << endl;
  else {
    if (flg2 || k & 1)
      cout << "First" << endl;
    else
      cout << "Second" << endl;
  }
  return 0;
}
