#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 44;
const int dx[] = {1, 0, -1, 0};
const int dy[] = {0, 1, 0, -1};
const int mod = 1e9 + 7;
const int INF = INT_MAX;
int t[N][33], z, win[N], lose[N];
void bor(string s) {
  int v = 0;
  for (int i = 0; i < s.size(); i++) {
    int c = s[i] - 'a';
    if (t[v][c] == 0) t[v][c] = ++z;
    v = t[v][c];
    ;
  }
}
void dfs(int v) {
  win[v] = 0;
  lose[v] = 0;
  bool w = 0;
  for (int i = 0; i < 27; i++) {
    if (t[v][i] != 0) {
      dfs(t[v][i]);
      w = 1;
      win[v] |= (!win[t[v][i]]);
      lose[v] |= (!lose[t[v][i]]);
    }
  }
  if (!w) {
    lose[v] = 1;
  }
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int n, k;
  cin >> n >> k;
  for (int i = int(0); i < int(n); i++) {
    string s;
    cin >> s;
    bor(s);
  }
  dfs(0);
  if (win[0] && lose[0]) {
    cout << "First";
  } else if (!win[0]) {
    cout << "Second";
  } else if (win[0] && !lose[0]) {
    if (k % 2 == 0) {
      cout << "Second";
    } else {
      cout << "First";
    }
  }
}
