#include <bits/stdc++.h>
using namespace std;
struct trie {
  int siz;
  int tri[120000][27];
  int win[120000];
  int los[120000];
  int son[120000];
  inline void init() {
    siz = 0;
    memset(tri, 0, sizeof(tri));
  }
  inline void dp(int x) {
    if (son[x] == 0) {
      win[x] = 0;
      los[x] = 1;
      return;
    }
    for (int i = 1; i <= 26; i++) {
      if (tri[x][i] != 0) {
        dp(tri[x][i]);
        if (win[tri[x][i]] == 0) win[x] = 1;
        if (los[tri[x][i]] == 0) los[x] = 1;
      }
    }
  }
  inline void insert(string ss) {
    int tmp, le = ss.length(), cur = 0;
    for (int i = 0; i < le; i++) {
      tmp = ss[i] - 'a' + 1;
      if (tri[cur][tmp] == 0) {
        siz++;
        tri[cur][tmp] = siz;
        son[cur]++;
        cur = siz;
      } else {
        cur = tri[cur][tmp];
      }
    }
  }
} sgt;
int n, m;
string str;
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    cin >> str;
    sgt.insert(str);
  }
  sgt.dp(0);
  if (sgt.win[0] == 1 && sgt.los[0] == 1)
    printf("First\n");
  else if (sgt.win[0] == 1 && sgt.los[0] == 0) {
    if (m % 2 == 1)
      printf("First\n");
    else
      printf("Second\n");
  } else
    printf("Second\n");
  return 0;
}
