#include <bits/stdc++.h>
using namespace std;
int sz;
int trie[100010][26];
int n, k;
int get(char a) { return a - 'a'; }
void insert(string st) {
  int u = 0;
  for (int i = 0; i < st.size(); i++) {
    int k = get(st[i]);
    if (!trie[u][k]) {
      trie[u][k] = sz;
      memset(trie[sz], 0, sizeof trie[sz]);
      sz++;
    }
    u = trie[u][k];
  }
}
void init() {
  sz = 1;
  memset(trie[0], 0, sizeof(trie[0]));
}
bool dfs1(int id) {
  for (int i = 0; i < 26; i++) {
    if (trie[id][i] != 0) {
      if (!dfs1(trie[id][i])) {
        return 1;
      }
    }
  }
  return 0;
}
bool dfs2(int id) {
  int ans = 0, flag = 1;
  for (int i = 0; i < 26; i++) {
    if (trie[id][i] != 0) {
      flag = 0;
      if (!dfs2(trie[id][i])) return 1;
    }
  }
  if (flag) return 1;
  return 0;
}
int main() {
  while (~scanf("%d%d", &n, &k)) {
    string s;
    init();
    for (int i = 0; i < n; i++) {
      cin >> s;
      insert(s);
    }
    int a = dfs1(0), b = dfs2(0);
    if (a == 0)
      printf("Second\n");
    else if (a == 1 && b == 1)
      printf("First\n");
    else if (a == 1 && b == 0) {
      if (k & 1)
        printf("First\n");
      else
        printf("Second\n");
    }
  }
}
