#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 123;
const int mod = 1e9 + 7;
const int INF = 1e9 + 1;
const long long INFL = 1e18 + 1;
const double eps = 1e-9;
const double pi = acos(-1.0);
int n, sz = 1, k;
struct bor {
  int nxt[30];
  int win, lose;
} T[7 * N];
inline void add(string second) {
  int v = 1;
  for (int i = 0; i < second.size(); i++) {
    int to = second[i] - 'a' + 1;
    if (!T[v].nxt[to]) T[v].nxt[to] = ++sz;
    v = T[v].nxt[to];
  }
}
inline void dfs1(int v = 1) {
  T[v].win = 0;
  for (int i = 1; i <= 26; i++) {
    if (T[v].nxt[i]) {
      dfs1(T[v].nxt[i]);
      if (!T[T[v].nxt[i]].win) T[v].win = 1;
    }
  }
}
inline void dfs2(int v = 1) {
  bool ok = 0;
  T[v].lose = 0;
  for (int i = 1; i <= 26; i++) {
    if (T[v].nxt[i]) {
      ok = 1;
      dfs2(T[v].nxt[i]);
      if (!T[T[v].nxt[i]].lose) T[v].lose = 1;
    }
  }
  if (!ok) T[v].lose = 1;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    string second;
    cin >> second;
    add(second);
  }
  dfs1();
  dfs2();
  if (T[1].win == 0)
    cout << "Second";
  else if (T[1].win == 1 && T[1].lose == 1)
    cout << "First";
  else {
    if (k % 2 == 1)
      cout << "First";
    else
      cout << "Second";
  }
  return 0;
}
