#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-9;
const int inf = (1 << 30) - 1;
const long long inf64 = ((long long)1 << 62) - 1;
const long double pi = acos(-1);
template <class T>
T sqr(T x) {
  return x * x;
}
template <class T>
T abs(T x) {
  return x < 0 ? -x : x;
}
const int MAXN = 120 * 1000;
string str[MAXN];
int v_str[MAXN];
int edg[MAXN][26];
bool dfs(int v, bool rev) {
  bool key = false;
  int num = 0;
  for (int i = 0; i < 26; ++i) {
    if (edg[v][i] != 0) {
      num++;
      if (!dfs(edg[v][i], rev)) {
        key = true;
      }
    }
  }
  if ((num == 0) && rev) {
    key = true;
  }
  return key;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n, k;
  cin >> n >> k;
  string tstr;
  getline(cin, tstr);
  for (int i = 0; i < n; ++i) {
    getline(cin, str[i]);
    v_str[i] = 1;
  }
  int num = 2;
  for (int i = 0; i < n; ++i) {
    int len = str[i].length();
    for (int j = 0; j < len; ++j) {
      int temp = str[i][j] - 'a';
      if (edg[v_str[i]][temp] == 0) {
        edg[v_str[i]][temp] = num;
        num++;
      }
      v_str[i] = edg[v_str[i]][temp];
    }
  }
  bool fw = dfs(1, false);
  bool fw_rev = dfs(1, true);
  cerr << fw << " " << fw_rev << endl;
  bool ans;
  if (!fw) {
    ans = false;
  } else {
    if (fw_rev) {
      ans = true;
    } else {
      ans = ((k % 2) != 0);
    }
  }
  if (ans) {
    cout << "First" << endl;
  } else {
    cout << "Second" << endl;
  }
  return 0;
}
