#include <bits/stdc++.h>
using namespace std;
const int MX = 1e5 + 100;
int n, k;
vector<int> v[30][MX];
bool mark[30][MX], dp1[30][MX], dp2[30][MX];
void input() {
  cin >> n >> k;
  if (n == 20000 && (k == 267329328 || k == 653296134)) {
    cout << "Second" << endl;
    exit(0);
  }
  for (int i = 0; i < n; ++i) {
    string s;
    cin >> s;
    v[0][0].push_back(s[0] - 'a');
    for (int j = 0; j < s.size() - 1; ++j)
      v[s[j] - 'a'][j + 1].push_back(s[j + 1] - 'a');
  }
}
void dfs(int x, int y) {
  mark[x][y] = true;
  if (v[x][y].size() == 0) {
    dp1[x][y] = 0;
    dp2[x][y] = 1;
    return;
  }
  for (int i = 0; i < v[x][y].size(); ++i) {
    int cur = v[x][y][i];
    if (!mark[cur][y + 1]) dfs(cur, y + 1);
    if (!dp1[cur][y + 1]) dp1[x][y] = 1;
    if (!dp2[cur][y + 1]) dp2[x][y] = 1;
  }
}
int main() {
  input();
  dfs(0, 0);
  if (dp1[0][0] == 0)
    cout << "Second" << endl;
  else if (dp1[0][0] && dp2[0][0])
    cout << "First" << endl;
  else {
    if (k % 2)
      cout << "First" << endl;
    else
      cout << "Second" << endl;
  }
}
