#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 100;
int dp[maxn], a[maxn];
int n, k;
int dfs(int x) {
  if (dp[x] != -1) return dp[x];
  int flag = 1;
  for (int i = 1; i <= n; i++) {
    if (x - a[i] >= 0) flag = min(flag, dfs(x - a[i]));
  }
  return dp[x] = flag ^ 1;
}
int main() {
  cin >> n >> k;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 0; i <= k; i++) dp[i] = -1;
  dp[0] = 0;
  for (int i = 0; i <= k; i++) cout << i << " " << dfs(i) << endl;
  if (dfs(k)) {
    printf("First");
  } else
    printf("Second");
}
