#include <bits/stdc++.h>
using namespace std;
class Tri {
 public:
  void insert(const string &s) {
    int p = 0;
    for (char c : s) {
      int x = c - 'a';
      if (tri_[p][x] == 0) {
        tri_[p][x] = ++count_;
      }
      p = tri_[p][x];
    }
  }
  void dfs(int v, vector<bool> &win, vector<bool> &lose) {
    win[v] = false;
    lose[v] = false;
    bool isLeaf = true;
    for (int i = 0; i < 26; ++i) {
      if (tri_[v][i] != 0) {
        isLeaf = false;
        int c = tri_[v][i];
        dfs(c, win, lose);
        win[v] = win[v] | !win[c];
        lose[v] = lose[v] | !lose[c];
      }
    }
    if (isLeaf) {
      lose[v] = true;
    }
  }

 private:
  int count_ = 0;
  vector<vector<int>> tri_ = vector<vector<int>>(100500, vector<int>(26, 0));
};
void answer(bool win) { cout << (win ? "First" : "Second") << endl; }
int main(int argc, char **argv) {
  Tri t;
  vector<bool> win(100500, false);
  vector<bool> lose(100500, false);
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; ++i) {
    string s;
    cin >> s;
    t.insert(s);
  }
  t.dfs(0, win, lose);
  if (k == 1) {
    answer(win[0]);
  } else if (!win[0]) {
    answer(win[0]);
  } else if (lose[0]) {
    answer(win[0]);
  } else if (k % 2 == 1) {
    answer(win[0]);
  } else {
    answer(!win[0]);
  }
  return 0;
}
