#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int n, k;
string s[maxn];
int nxt[maxn][26], sz = 1;
int win[maxn][2], lose[maxn][2];
void add(int i) {
  int pos = 1;
  for (char c : s[i]) {
    if (nxt[pos][c - 'a'] == 0) nxt[pos][c - 'a'] = ++sz;
    pos = nxt[pos][c - 'a'];
  }
}
void dfs(int v) {
  int cnt = 0;
  for (int i = 0; i < 26; i++) {
    int u = nxt[v][i];
    if (u == 0) continue;
    dfs(u);
    cnt++;
    if (win[u][1] == 0) win[v][0] = 1;
    if (win[u][0] == 0) win[v][1] = 1;
    if (lose[u][1] == 0) lose[v][0] = 1;
    if (lose[u][0] == 0) lose[v][1] = 1;
  }
  if (cnt == 0) {
    lose[v][1] = lose[v][0] = 1;
    win[v][0] = win[v][1] = 0;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  k %= 2;
  for (int i = 0; i < n; i++) cin >> s[i], add(i);
  dfs(1);
  if (win[1][0] == 1 && lose[1][0] == 1) return cout << "First\n", 0;
  if (k == 1)
    if (win[1][0] == 1 && lose[1][1] == 0) return cout << "First\n", 0;
  cout << "Second\n";
}
