#include <bits/stdc++.h>
using namespace std;
class EV {
 public:
  int x, y, i;
  EV() {}
  EV(int _x, int _y, int _i) {
    x = _x;
    y = _y;
    i = _i;
  }
  bool operator<(const EV& e) const {
    if (x == e.x) {
      if (y == e.y) return i < e.i;
      return y < e.y;
    }
    return x < e.x;
  }
};
EV X[300000];
EV Y[300000];
vector<int> b;
vector<int> bi;
vector<int> bj;
int main() {
  int n, m, r, i, j, k, x1, x2, y1, y2, xn, yn, d, px, s, xs, ys, fx, fy, XY, S;
  scanf("%d %d %d", &n, &m, &r);
  xn = yn = 0;
  for (i = 0; i < r; i++) {
    scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
    if (x1 == x2) {
      if (y1 > y2) swap(y1, y2);
      X[xn++] = EV(x1, y1, 1);
      X[xn++] = EV(x1, y2, -1);
    } else {
      if (x1 > x2) swap(x1, x2);
      Y[yn++] = EV(y1, x1, 1);
      Y[yn++] = EV(y1, x2, -1);
    }
  }
  xs = n - 1;
  ys = m - 1;
  fx = 1;
  fy = 1;
  sort(X, X + xn);
  for (i = 1, j = 0; i <= xn; i++) {
    if (i == xn || X[i].x != X[i - 1].x) {
      bj.push_back(j);
      bi.push_back(i);
      xs--;
      if (X[i - 1].x == fx) fx++;
      d = 0;
      px = 0;
      s = 0;
      for (; j < i; j++) {
        if (!d) {
          s += X[j].y - px;
        }
        d += X[j].i;
        px = X[j].y;
      }
      s += m - px;
      b.push_back(s);
    }
  }
  XY = b.size();
  sort(Y, Y + yn);
  for (i = 1, j = 0; i <= yn; i++) {
    if (i == yn || Y[i].x != Y[i - 1].x) {
      bj.push_back(j);
      bi.push_back(i);
      ys--;
      if (Y[i - 1].y == fy) fy++;
      d = 0;
      px = 0;
      s = 0;
      for (; j < i; j++) {
        if (!d) {
          s += Y[j].y - px;
        }
        d += Y[j].i;
        px = Y[j].y;
      }
      s += n - px;
      b.push_back(s);
    }
  }
  s = 0;
  if (xs % 2) s ^= m;
  if (ys % 2) s ^= n;
  for (i = 0; i < b.size(); i++) {
    s ^= b[i];
  }
  if (s == 0) {
    puts("SECOND");
  } else {
    puts("FIRST");
    if (xs > 0 && m > (s ^ m)) {
      printf("%d %d %d %d\n", fx, 0, fx, m - (s ^ m));
    } else if (ys > 0 && n > (s ^ n)) {
      printf("%d %d %d %d\n", 0, fy, n - (s ^ n), fy);
    } else {
      for (i = 0; i < b.size(); i++) {
        if (b[i] > (s ^ b[i])) {
          S = b[i] - (s ^ b[i]);
          if (i < XY) {
            d = 0;
            px = 0;
            s = 0;
            for (j = bj[i]; j < bi[i]; j++) {
              if (!d) {
                s += X[j].y - px;
                if (s >= S) {
                  s -= X[j].y - px;
                  printf("%d %d %d %d\n", X[bj[i]].x, 0, X[bj[i]].x,
                         px + S - s);
                  return 0;
                }
              }
              d += X[j].i;
              px = X[j].y;
            }
            s += m - px;
            if (s >= S) {
              s -= m - px;
              printf("%d %d %d %d\n", X[bj[i]].x, 0, X[bj[i]].x, px + S - s);
              return 0;
            }
          } else {
            d = 0;
            px = 0;
            s = 0;
            for (j = bj[i]; j < bi[i]; j++) {
              if (!d) {
                s += Y[j].y - px;
                if (s >= S) {
                  s -= Y[j].y - px;
                  printf("%d %d %d %d\n", 0, Y[bj[i]].x, px + S - s,
                         Y[bj[i]].x);
                  return 0;
                }
              }
              d += Y[j].i;
              px = Y[j].y;
            }
            s += n - px;
            if (s >= S) {
              s -= n - px;
              printf("%d %d %d %d\n", 0, Y[bj[i]].x, px + S - s, Y[bj[i]].x);
              return 0;
            }
          }
        }
      }
    }
  }
  return 0;
}
