#include <bits/stdc++.h>
using namespace std;
inline void pilot() {
  ios::sync_with_stdio(false);
  cin.tie(0);
}
const int N = 1e5 + 5;
int root, idx;
int trie[N][27];
int win[N], lose[N];
void addToTrie(string s) {
  int cur = root;
  for (int i = 0; i < (int)s.size(); i++) {
    int c = s[i] - 'a' + 1;
    if (trie[cur][c] == 0) {
      trie[cur][c] = ++idx;
    }
    cur = trie[cur][c];
  }
}
void dfs(int r) {
  win[r] = false;
  lose[r] = false;
  bool isLeaf = true;
  for (int i = 1; i <= 26; i++) {
    if (trie[r][i] != 0) {
      isLeaf = false;
      int to = trie[r][i];
      dfs(to);
      win[r] = win[r] | !win[to];
      lose[r] = lose[r] | !lose[to];
    }
  }
  if (isLeaf) {
    lose[r] = true;
    win[r] = false;
  }
}
int main() {
  pilot();
  int n, k;
  cin >> n >> k;
  string s;
  for (int i = int(1); i < int(n + 1); ++i) {
    cin >> s;
    addToTrie(s);
  }
  dfs(root);
  if (k == 1) {
    win[root] ? cout << "First" : cout << "Second";
  } else if (win[root] == false) {
    cout << "Second" << endl;
  } else if (win[root] == true and lose[root] == true) {
    cout << "First" << endl;
  } else if (win[root] == true and lose[root] == false) {
    k % 2 ? cout << "First" : cout << "Second";
  }
}
