#include <bits/stdc++.h>
using namespace std;
int n, k, trie[100100][27], sz = 1, ok[2][100100];
char s[100100];
void add() {
  int v = 0;
  for (int i = 0; s[i] != '\0'; i++) {
    if (trie[v][s[i] - 'a'] == 0) trie[v][s[i] - 'a'] = sz++;
    v = trie[v][s[i] - 'a'];
  }
}
void calc(int v, bool bo, int temp[30]) {
  int arr[5];
  for (int i = 0; i < 5; i++) arr[i] = 0;
  for (int i = 0; i < 26; i++) {
    if (temp[i] == -1) continue;
    if (temp[i] == 0) {
      ok[bo][v] = 0;
      break;
    }
    if (temp[i] == 1) {
      if (arr[2]) {
        ok[bo][v] = 0;
        break;
      }
    }
    if (temp[i] == 2) {
      if (arr[1]) {
        ok[bo][v] = 0;
        break;
      }
    }
    arr[temp[i]]++;
  }
  if (ok[bo][v] != 0)
    ok[bo][v] = (arr[3] && !arr[1] && !arr[2] ? 3 : (arr[1] ? 1 : 2));
}
int dfs(int v, bool st, bool bo) {
  int cnt = 0, temp[26];
  for (int i = 0; i < 26; i++) temp[i] = -1;
  for (int i = 0; i < 26; i++) {
    if (!trie[v][i]) continue;
    cnt++;
    temp[i] = dfs(trie[v][i], !st, bo);
    if (temp[i] == 1)
      ok[bo][v] = (ok[bo][v] < 2 ? 1 : 3);
    else if (temp[i] == 2)
      ok[bo][v] = (ok[bo][v] == 2 || ok[bo][v] == 0 ? 2 : 3);
    else if (temp[i] == 3)
      ok[bo][v] = 3;
  }
  if (cnt > 1 && !st && !bo) calc(v, bo, temp);
  if (cnt > 1 && st && bo) calc(v, bo, temp);
  if (cnt == 0) ok[bo][v] = (st ? 2 : 1);
  return ok[bo][v];
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%s", &s);
    add();
  }
  dfs(0, 1, 0);
  dfs(0, 1, 1);
  if (ok[0][0] == 3)
    printf("First\n");
  else if (ok[0][0] == 1) {
    if (k % 2)
      printf("First\n");
    else
      printf("Second\n");
  } else if (ok[0][0] == 2)
    printf("Second\n");
  else {
    if (ok[1][0] == 3)
      printf("Second\n");
    else if (ok[1][0] == 1) {
      if (k % 2)
        printf("First\n");
      else
        printf("Second\n");
    } else if (ok[1][0] == 2)
      printf("Second\n");
  }
  return 0;
}
