#include <bits/stdc++.h>
template <typename T>
void vc(T t) {
  std::cout << t << " ";
}
template <typename T, typename... Args>
void vc(T t, Args... args) {
  std::cout << t << " ";
  vc(args...);
}
const int N = 100000;
double mp[303][303][303];
double dpx(int c1, int c2, int c3, double n) {
  if (mp[c1][c2][c3] != -1) {
    return mp[c1][c2][c3];
  }
  mp[c1][c2][c3] = n / (c1 + c2 + c3);
  double n2 = c1 + c2 + c3;
  if (c3 > 0) {
    mp[c1][c2][c3] += c3 / n2 * dpx(c1, c2 + 1, c3 - 1, n);
  }
  if (c2 > 0) {
    mp[c1][c2][c3] += c2 / n2 * dpx(c1 + 1, c2 - 1, c3, n);
  }
  if (c1 > 0) {
    mp[c1][c2][c3] += c1 / n2 * dpx(c1 - 1, c2, c3, n);
  }
  return mp[c1][c2][c3];
}
void once() {
  int n, k;
  std::cin >> n >> k;
  std::vector<int> vi(n + 1);
  for (int i = 0; i < n; ++i) {
    std::cin >> vi[i];
  }
  auto aim = vi[0] + vi[n - 1];
  if (k % aim == 0) {
    std::cout << "Second" << std::endl;
  } else {
    std::cout << "First" << std::endl;
  }
}
int main() {
  int n = 1;
  std::ios::sync_with_stdio(false);
  while (n--) {
    once();
  }
}
