#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
string str[N];
struct node {
  node *bit[26];
  int flag;
};
node *root[2];
node *new_node() {
  node *temp = new node;
  temp->flag = 0;
  for (int i = 0; i < 26; i++) temp->bit[i] = NULL;
  return temp;
}
void insert(long long n, int x) {
  int b;
  long long i, len;
  node *temp = root[x];
  len = str[n].length();
  for (i = 0; i < len; i++) {
    b = (int)str[n][i] - (int)'a';
    if (temp->bit[b] == NULL) temp->bit[b] = new_node();
    temp = temp->bit[b];
  }
  return;
}
void solve1(node *nd) {
  long long i;
  int flag = 0;
  for (i = 0; i < 26; i++) {
    if (nd->bit[i] != NULL) {
      flag = 1;
      if (nd->bit[i]->flag == 0) solve1(nd->bit[i]);
    }
  }
  if (!flag) {
    nd->flag = -1;
    return;
  }
  for (i = 0; i < 26; i++) {
    if (nd->bit[i] != NULL && nd->bit[i]->flag == -1) {
      nd->flag = 1;
      return;
    }
  }
  nd->flag = -1;
  return;
}
void solve2(node *nd) {
  long long i;
  int flag = 0;
  for (i = 0; i < 26; i++) {
    if (nd->bit[i] != NULL) {
      flag = 1;
      if (nd->bit[i]->flag == 0) solve2(nd->bit[i]);
    }
  }
  if (!flag) {
    nd->flag = -1;
    return;
  }
  for (i = 0; i < 26; i++) {
    if (nd->bit[i] != NULL && nd->bit[i]->flag == 1) {
      nd->flag = -1;
      return;
    }
  }
  nd->flag = 1;
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  root[0] = new_node();
  root[1] = new_node();
  long long n, k, i;
  cin >> n >> k;
  for (i = 0; i < n; i++) {
    cin >> str[i];
    insert(i, 0);
    insert(i, 1);
  }
  solve1(root[0]);
  solve2(root[1]);
  if (root[0]->flag == 1 && root[1]->flag == -1)
    cout << "First\n";
  else if (root[0]->flag == 1 && root[1]->flag == 1) {
    if (k % 2)
      cout << "First\n";
    else
      cout << "Second\n";
  } else if (root[0]->flag == -1 && root[1]->flag == -1)
    cout << "Second\n";
  else
    cout << "Second\n";
  return 0;
}
