#include <bits/stdc++.h>
using namespace std;
struct node {
  int to[50];
};
int n, k;
pair<bool, bool> mem[100005][2];
node p[100005];
int main() {
  int i, j, m, cnt, now, x, y;
  pair<bool, bool> ans, t;
  char s[100005];
  scanf("%d%d", &n, &k);
  cnt = 1;
  for (i = 0; i < n; i++) {
    scanf(" %s", s);
    m = strlen(s);
    now = 0;
    for (j = 0; j < m; j++) {
      if (p[now].to[s[j] - 'a'] == 0) {
        p[now].to[s[j] - 'a'] = cnt++;
      }
      now = p[now].to[s[j] - 'a'];
    }
  }
  for (x = cnt - 1; x >= 0; x--) {
    for (y = 0; y < 2; y++) {
      bool check = false;
      for (i = 0; i < 26; i++) {
        if (p[x].to[i]) {
          t = mem[p[x].to[i]][!y];
          mem[x][y].first |= !t.first;
          mem[x][y].second |= !t.second;
          check = true;
        }
      }
      if (!check) mem[x][y] = {0, 1};
    }
  }
  ans = mem[0][0];
  x = ans.first;
  y = ans.second;
  if (!x)
    printf("Second");
  else {
    if (y)
      printf("First");
    else {
      if (k % 2 == 0)
        printf("Second");
      else
        printf("First");
    }
  }
}
