#include <bits/stdc++.h>
int S[2][100000 + 1];
int A[100];
int stones(int p, int k, int n) {
  if (k > -(100000 + 1) && k < 0) return 1;
  if (S[p][k] != -(100000 + 1)) return S[p][k];
  if (k == 0) return S[p][k] = 0;
  int i;
  if (p == 0) {
    for (i = 0; i < n; i++)
      if (stones(1, k - A[i], n) == 0) return S[p][k] = 1;
    return S[p][k] = 0;
  } else {
    for (i = 0; i < n; i++)
      if (stones(0, k - A[i], n) == 0) return S[p][k] = 1;
    return S[p][k] = 0;
  }
}
int main(void) {
  int n, k, min, i;
  scanf("%d%d", &n, &k);
  for (i = 0; i < n; i++) scanf("%d", &A[i]);
  for (i = 0; i <= k; i++) S[0][i] = S[1][i] = -(100000 + 1);
  if (stones(0, k, n) == 1)
    printf("First\n");
  else
    printf("Second\n");
  for (i = 0; i <= k; i++) printf("%d ", S[0][i]);
  printf("\n");
  for (i = 0; i <= k; i++) printf("%d ", S[1][i]);
  printf("\n");
  return 0;
}
