#include <iostream> #include <string> #include <vector> #include <algorithm> #include <utility> #include <tuple> #include <cstdint> #include <cstdio> #include <map> #include <queue> #include <set> #include <stack> #include <deque> #include <unordered_map> #include <unordered_set> #include <bitset> #include <cctype> #include <functional> #include <ctime> #include <fstream> #include <cmath> #include <limits> #include <numeric> #include <type_traits> #include <iomanip> #include <float.h> #include <math.h> #include <cassert> #pragma warning (disable: 4996) using namespace std; using ll = long long; int main() { ll n,m; cin >> n >> m; assert(n >= 1 && n <= 200000 && m >= 0 && m <= 1000000000000); ll fl = -1; vector<ll> z(n); for (int i = 0; i < n; i++) { cin >> z[i]; assert(z[i] >= 1 && z[i] <= 1000000000000); } for (int i = 0; i < n; i++) { if (z[i] != 1) { fl = i; break; } } if (fl == -1) { if (m == 0 && n % 2 == 1)cout << "First" << endl; else cout << "Second" << endl; } else if(fl%2==0)cout << "First" << endl; else cout << "Second" << endl; }