#include <bits/stdc++.h>
using namespace std;
string s;
struct node {
  bool w, l;
  node* c[26];
  void add(int I) {
    if (I == s.size()) return;
    if (c[s[I] - 'a'] == NULL) c[s[I] - 'a'] = new node;
    c[s[I] - 'a']->add(I + 1);
  }
  void solve() {
    bool C = 0, N = 0;
    for (int i = 0; i < 26; i++)
      if (c[i] != NULL) {
        N = 1;
        c[i]->solve();
        if (!(c[i]->w)) w = 1;
        if (!(c[i]->l)) C = 1;
      }
    if (!C and N) l = 0;
  }
  node() {
    w = 0;
    l = 1;
    for (int i = 0; i < 26; i++) c[i] = NULL;
  }
};
int n, k;
node R;
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> s;
    R.add(0);
  }
  R.solve();
  if (!R.w or (!R.l and !(k & 1)))
    cout << "Second" << endl;
  else
    cout << "First" << endl;
  return 0;
}
