#include <bits/stdc++.h>
using namespace std;
template <class T>
inline T checkmin(T &a, T b) {
  return (a < b) ? a : a = b;
}
template <class T>
inline T checkmax(T &a, T b) {
  return (a > b) ? a : a = b;
}
template <class T>
T GCD(T a, T b) {
  if (a < 0) return GCD(-a, b);
  if (b < 0) return GCD(a, -b);
  return (a == 0) ? b : GCD(b % a, a);
}
template <class T>
T LCM(T a, T b) {
  if (a < 0) return LCM(-a, b);
  if (b < 0) return LCM(a, -b);
  return (a == 0 || b == 0) ? 0 : a / GCD(a, b) * b;
}
template <class T>
inline T sqr(T X) {
  return X * X;
}
namespace Poor {
int N, M, X1, Y1, X2, Y2;
bool Solve() {
  int DX = abs(X1 - X2);
  int DY = abs(Y1 - Y2);
  if (DX > DY) swap(DX, DY);
  if (DY >= 5) return 0;
  if (DY <= 2) return 1;
  if (DY <= 3) return 1;
  if (DX + DY <= 6) return 1;
  return 0;
}
void Run() {
  scanf("%d%d%d%d%d%d", &N, &M, &X1, &Y1, &X2, &Y2);
  puts(Solve() ? "First" : "Second");
}
}  // namespace Poor
int main() {
  Poor::Run();
  return 0;
}
