#include <bits/stdc++.h>
using namespace std;
struct node {
  node *a[30];
  bool isend, win, lose;
  int tool;
  node() {
    memset(a, 0, sizeof a);
    isend = false;
    win = false;
    lose = true;
    tool = 0;
  }
  void insert(string &s, int pos) {
    if (pos == s.size()) {
      isend = true;
      return;
    }
    if (!a[s[pos] - 'a']) a[s[pos] - 'a'] = new node();
    a[s[pos] - 'a']->insert(s, pos + 1);
    if (s.size() % 2) tool = 1;
  }
  void dfs() {
    for (int i = 0; i < 27; i++)
      if (a[i]) a[i]->dfs(), win = lose = false;
    for (int i = 0; i < 27; i++)
      if (a[i]) {
        win = !(a[i]->win) || win;
        lose = !(a[i]->lose) || lose;
      }
  }
};
bool d1, d2;
string s;
int n, k;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  node *root = new node();
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> s, root->insert(s, 0);
  root->dfs();
  d1 = root->win, d2 = root->lose;
  if (d1 && d2)
    cout << "First\n";
  else if (d1 && k % 2)
    cout << "First\n";
  else
    cout << "Second\n";
  return 0;
}
