#include <bits/stdc++.h>
using namespace std;
struct node {
  bool endmark;
  node* next[26];
  node() {
    endmark = false;
    for (int i = 0; i < 26; i++) {
      next[i] = NULL;
    }
  }
} * root;
void insert(string s) {
  node* cur = root;
  int ln = s.size();
  for (int i = 0; i < ln; i++) {
    int id = s[i] - 'a';
    if (cur->next[id] == NULL) {
      cur->next[id] = new node();
    }
    cur = cur->next[id];
  }
  cur->endmark = true;
}
int win(node* cur) {
  for (int i = 0; i < 26; i++) {
    if (cur->next[i]) {
      int a = win(cur->next[i]);
      if (a == 0) return 1;
    }
  }
  return 0;
}
int loose(node* cur) {
  int cnt = 0;
  for (int i = 0; i < 26; i++) {
    if (cur->next[i]) {
      int a = loose(cur->next[i]);
      if (a == 0) return 1;
      cnt++;
    }
  }
  if (!cnt) return 1;
  return 0;
}
void solve() {
  root = new node();
  int n, k;
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    string s;
    cin >> s;
    insert(s);
  }
  int w = win(root), l = loose(root);
  if (w == 1 and l == 1) {
    cout << "First"
         << "\n";
  } else if (w == 0) {
    cout << "Second"
         << "\n";
  } else {
    if (k % 2) {
      cout << "First"
           << "\n";
    } else
      cout << "Second"
           << "\n";
  }
}
int main() {
  ios_base ::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
}
