#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vl = vector<ll>;
using vvl = vector<vl>;
using vb = vector<bool>;
using vs = vector<string>;
using pll = pair<ll, ll>;
const ll oo = 0x3f3f3f3f3f3f3f3fLL;
const double eps = 1e-9;
using namespace std;
ll n, k;
vl values;
int dp[2][500001];
bool canWin(bool taro, ll missing) {
  if (dp[taro][missing] != -1) return dp[taro][missing];
  bool output;
  if (missing < values[0]) {
    output = false;
  } else {
    output = false;
    for (ll value : values) {
      if (!canWin(!taro, missing - value)) {
        output = true;
        break;
      }
    }
  }
  dp[taro][missing] = output;
  return output;
}
int main() {
  cin.sync_with_stdio(0);
  cin >> n >> k;
  for (ll i = (0); i < (2); i++) {
    for (ll j = (0); j < (500001); j++) {
      dp[i][j] = -1;
    }
  }
  values = vl(n);
  for (ll i = (0); i < (k); i++) {
    cin >> values[i];
  }
  if (canWin(true, k))
    cout << "First" << endl;
  else
    cout << "Second" << endl;
  return 0;
}
