#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int nn, n = 1, k, t, p, tri[N][27];
bool can_win[N], can_lose[N];
char s[N];
int main() {
  scanf("%d%d", &nn, &k);
  memset(tri, 0, sizeof tri);
  for (int i = 0; i < nn; i++) {
    scanf("%s", s);
    t = 1;
    for (int j = 0; s[j]; j++) {
      p = s[j] - 'a';
      if (tri[t][p] == 0) tri[t][p] = ++n;
      t = tri[t][p];
    }
  }
  for (int i = n; i >= 1; i--) {
    bool mv = false;
    for (int j = 0; j < 26; j++)
      if (tri[i][j] != 0) {
        mv = true;
        break;
      }
    if (!mv) {
      can_win[i] = false;
      can_lose[i] = true;
      continue;
    }
    for (int j = 0; j < 26; j++) {
      if (tri[i][j] == 0) continue;
      if (!can_win[tri[i][j]]) can_win[i] = true;
      if (!can_lose[tri[i][j]]) can_lose[i] = true;
    }
  }
  if (can_win[1] && can_lose[1])
    puts("First");
  else if (!can_win[1] && !can_lose[1])
    puts("Second");
  else if (can_win[1] && !can_lose[1])
    puts(k % 2 ? "First" : "Second");
  else
    puts("Second");
  return 0;
}
