#include <bits/stdc++.h>
using namespace std;
class trie {
  int max_len;
  vector<map<char, int>> t;
  int szT;

 public:
  vector<bool> can_win;
  vector<bool> can_lose;
  trie(int max_len) : max_len(max_len) {
    szT = 0;
    t = vector<map<char, int>>(max_len);
    can_win = vector<bool>(max_len, false);
    can_lose = vector<bool>(max_len, false);
  }
  void add(const string& s) {
    int len = s.size();
    int v = 0;
    for (int i = 0; i < len; i++) {
      int c = s[i];
      if (t[v][c] == 0) t[v][c] = ++szT;
      v = t[v][c];
    }
  }
  void dfs(int cur) {
    bool isLeaf = true;
    for (auto p : t[cur]) {
      isLeaf = false;
      dfs(p.second);
      can_win[cur] = can_win[cur] | !can_win[p.second];
      can_lose[cur] = can_lose[cur] | !can_lose[p.second];
    }
    if (isLeaf) {
      can_lose[cur] = true;
      can_win[cur] = false;
    }
  }
};
int main() {
  int n;
  int k;
  cin >> n >> k;
  trie t(100000);
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    t.add(s);
  }
  t.dfs(0);
  if (k == 1)
    cout << (t.can_win[0] ? "First" : "Second");
  else if (!t.can_win[0])
    cout << "Second";
  else if (t.can_lose[0])
    cout << "First";
  else if (k % 2 == 1)
    cout << "First";
  else
    cout << "Second";
}
