#include <bits/stdc++.h>
using namespace std;
char str[100003];
struct Node {
  int val;
  int val2;
  Node* pt[26];
} node[100003];
int cnt;
int mex(Node* node) {
  if (node->val != -1) return node->val;
  int f[30] = {};
  for (int i = 0; i < 26; ++i)
    if (node->pt[i]) f[mex(node->pt[i])] = 1;
  for (int i = 0; i < 30; ++i)
    if (f[i] == 0) return node->val = i;
}
int mex2(Node* node) {
  if (node->val2 != -1) return node->val2;
  int f[30] = {};
  int flag = 0;
  for (int i = 0; i < 26; ++i)
    if (node->pt[i]) {
      f[mex2(node->pt[i])] = 1;
      flag = 1;
    }
  if (!flag) return node->val2 = 1;
  for (int i = 0; i < 30; ++i)
    if (f[i] == 0) return node->val2 = i;
}
int main() {
  cnt = 27;
  int N, K;
  cin >> N >> K;
  for (int i = 0; i < 100003; ++i) node[i].val = node[i].val2 = -1;
  for (int i = 0; i < N; ++i) {
    cin >> str;
    Node* now = node;
    now->pt[str[0] - 'a'] = node + str[0] - 'a' + 1;
    for (int j = 0; str[j]; ++j)
      if (now->pt[str[j] - 'a'])
        now = now->pt[str[j] - 'a'];
      else
        now = now->pt[str[j] - 'a'] = node + cnt++;
  }
  if (mex(node) == 0)
    cout << "Second" << endl;
  else if (K % 2 == 1 || mex2(node))
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  return 0;
}
