#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
int dp[MAXN], NE = 0;
char s[MAXN];
struct TrieNode {
  int id;
  TrieNode *next[26];
};
TrieNode *root;
int n, k;
TrieNode *creat() {
  TrieNode *p = (TrieNode *)malloc(sizeof(TrieNode));
  p->id = NE++;
  memset(p->next, NULL, sizeof(p->next));
  return p;
}
void insert(TrieNode *root, char word[]) {
  TrieNode *p = root;
  for (int i = 0; word[i]; i++) {
    int id = word[i] - 'a';
    if (p->next[id] == NULL) {
      p->next[id] = creat();
    }
    p = p->next[id];
  }
}
void dfs(TrieNode *root) {
  if (root == NULL) return;
  int flag = 0;
  for (int i = 0; i < 26; i++) {
    if (!root->next[i]) continue;
    dfs(root->next[i]);
    flag = 1;
    dp[root->id] |= (3 ^ dp[root->next[i]->id]);
  }
  if (flag == 0) dp[root->id] = 1;
}
int main() {
  while (scanf("%d%d", &n, &k) != EOF) {
    getchar();
    NE = 0;
    root = creat();
    for (int i = 0; i < n; i++) {
      gets(s);
      insert(root, s);
    }
    memset(dp, 0, sizeof(dp));
    dfs(root);
    int res = dp[0];
    if (res == 3)
      printf("First\n");
    else if (res == 1 || res == 0)
      printf("Second\n");
    else if (res == 2) {
      if (k % 2)
        printf("First\n");
      else
        printf("Second\n");
    }
  }
}
