#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 100;
int cnt = 1;
int win[N];
int lose[N];
int trie[N][27];
void add(string s) {
  int curr = 1;
  int next;
  for (int i = 0; i < s.size(); i++) {
    next = trie[curr][s[i] - 'a'];
    if (next == -1) {
      trie[curr][s[i] - 'a'] = ++cnt;
    }
    curr = trie[curr][s[i] - 'a'];
  }
}
void dfs(int curr) {
  int leaf = 1;
  for (int i = 0; i < 26; i++) {
    int next = trie[curr][i];
    if (next != -1) {
      leaf = 0;
      dfs(next);
      win[curr] |= !win[next];
      lose[curr] |= !lose[next];
    }
  }
  if (leaf) {
    lose[curr] = 1;
  }
}
int main() {
  int n, k;
  string s;
  cin >> n >> k;
  memset(trie, -1, sizeof(trie));
  for (int i = 1; i <= n; i++) {
    cin >> s;
    add(s);
  }
  dfs(1);
  int x = win[1];
  int y = lose[1];
  if (x and y)
    cout << "First" << endl;
  else if (x and k % 2)
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  return 0;
}
