#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
const int N = 100005;
bool can_lose[N], can_win[N];
int trie[N][26], n, k, C = 1;
string s;
void add(string s) {
  int v = 1;
  for (int i = 0; i < s.length(); i++) {
    int x = s[i] - 'a';
    if (trie[v][x] == 0) trie[v][x] = ++C;
    v = trie[v][x];
  }
}
void dfs(int cur) {
  bool IsLeaf = true;
  for (int i = 0; i < 26; i++) {
    int child = trie[cur][i];
    if (child) {
      IsLeaf = false;
      dfs(child);
      can_win[cur] |= (!can_win[child]);
      can_lose[cur] |= (!can_lose[child]);
    }
  }
  if (IsLeaf) can_lose[cur] = true;
}
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> s;
    add(s);
  }
  dfs(1);
  if (can_win[1] && can_lose[1])
    cout << "First" << endl;
  else if (can_win[1]) {
    if (k & 1)
      cout << "First" << endl;
    else
      cout << "Second" << endl;
  } else {
    cout << "Second" << endl;
  }
  return 0;
}
