#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
const double PI = acos(-1.0);
const int MAXN = (int)1e6 + 10000;
struct seg {
  int len;
  int x1, x2, qwertyuiopasdfghjklzxcvbnm, y2;
  seg(int x1 = 0, int x2 = 0, int qwertyuiopasdfghjklzxcvbnm = 0, int y2 = 0)
      : x1(x1),
        x2(x2),
        qwertyuiopasdfghjklzxcvbnm(qwertyuiopasdfghjklzxcvbnm),
        y2(y2) {
    len = abs(x1 - x2) + abs(qwertyuiopasdfghjklzxcvbnm - y2);
  };
};
seg segs[MAXN];
vector<int> x;
vector<int> y;
int n, m, k;
vector<pair<int, int> > segv[MAXN];
vector<pair<int, int> > segg[MAXN];
vector<int> lens;
seg vseg, gseg;
void out(int x1, int x2, int qwertyuiopasdfghjklzxcvbnm, int y2) {
  printf("%d %d %d %d\n", x1, qwertyuiopasdfghjklzxcvbnm, x2, y2);
  exit(0);
}
int main() {
  scanf("%d %d %d", &n, &m, &k);
  int K = k;
  k = 0;
  for (int i = 0; i < K; i++) {
    int x1, x2, qwertyuiopasdfghjklzxcvbnm, y2;
    scanf("%d %d %d %d", &x1, &qwertyuiopasdfghjklzxcvbnm, &x2, &y2);
    if (x1 > x2) swap(x1, x2);
    if (qwertyuiopasdfghjklzxcvbnm > y2) swap(qwertyuiopasdfghjklzxcvbnm, y2);
    segs[k++] = seg(x1, x2, qwertyuiopasdfghjklzxcvbnm, y2);
    x.push_back(x1);
    x.push_back(x2);
    y.push_back(qwertyuiopasdfghjklzxcvbnm);
    y.push_back(y2);
  }
  sort(x.begin(), x.end());
  x.resize(unique(x.begin(), x.end()) - x.begin());
  sort(y.begin(), y.end());
  y.resize(unique(y.begin(), y.end()) - y.begin());
  for (int i = 0; i < k; i++)
    if (segs[i].qwertyuiopasdfghjklzxcvbnm == segs[i].y2) {
      int Y = segs[i].qwertyuiopasdfghjklzxcvbnm;
      int pos = lower_bound(y.begin(), y.end(), Y) - y.begin();
      segv[pos].push_back(make_pair(segs[i].x1, 0));
      segv[pos].push_back(make_pair(segs[i].x2, 1));
    } else {
      int X = segs[i].x1;
      int pos = lower_bound(x.begin(), x.end(), X) - x.begin();
      segg[pos].push_back(make_pair(segs[i].qwertyuiopasdfghjklzxcvbnm, 0));
      segg[pos].push_back(make_pair(segs[i].y2, 1));
    }
  for (int i = 0; i < ((int)(y).size()); i++) {
    if (y[i] == 0 || y[i] == m) continue;
    segv[i].push_back(make_pair(0, 0));
    segv[i].push_back(make_pair(0, 1));
    segv[i].push_back(make_pair(n, 0));
    segv[i].push_back(make_pair(n, 1));
    sort(segv[i].begin(), segv[i].end());
    int cnt = 0;
    int len = 0;
    for (int j = 0; j < ((int)(segv[i]).size()) - 1; j++) {
      if (!segv[i][j].second)
        cnt++;
      else
        cnt--;
      if (cnt == 0) len += segv[i][j + 1].first - segv[i][j].first;
    }
    if (len > 0) lens.push_back(len);
  }
  for (int i = 0; i < ((int)(x).size()); i++) {
    if (x[i] == 0 || x[i] == n) continue;
    segg[i].push_back(make_pair(0, 0));
    segg[i].push_back(make_pair(0, 1));
    segg[i].push_back(make_pair(m, 0));
    segg[i].push_back(make_pair(m, 1));
    sort(segg[i].begin(), segg[i].end());
    int cnt = 0;
    int len = 0;
    for (int j = 0; j < ((int)(segg[i]).size()) - 1; j++) {
      if (!segg[i][j].second)
        cnt++;
      else
        cnt--;
      if (cnt == 0) len += segg[i][j + 1].first - segg[i][j].first;
    }
    if (len > 0) lens.push_back(len);
  }
  vseg = seg(-1, -1, -1, -1);
  int cnt = m - 1 - ((int)(y).size());
  if (!y.empty() && y[0] == 0) cnt++;
  if (!y.empty() && *y.rbegin() == m) cnt++;
  for (int i = 1; i < MAXN && cnt % 2 == 1 && cnt > 0; i++) {
    int pos = lower_bound(y.begin(), y.end(), i) - y.begin();
    if (pos == ((int)(y).size()) || y[pos] != i) {
      vseg = seg(0, n, i, i);
      lens.push_back(n);
      break;
    }
  }
  gseg = seg(-1, -1, -1, -1);
  cnt = n - 1 - ((int)(x).size());
  if (!x.empty() && x[0] == 0) cnt++;
  if (!x.empty() && *x.rbegin() == n) cnt++;
  for (int i = 1; i < MAXN && cnt % 2 == 1 && cnt > 0; i++) {
    int pos = lower_bound(x.begin(), x.end(), i) - x.begin();
    if (pos == ((int)(x).size()) || x[pos] != i) {
      gseg = seg(i, i, 0, m);
      lens.push_back(m);
      break;
    }
  }
  int res = 0;
  for (int i = 0; i < ((int)(lens).size()); i++) res ^= lens[i];
  if (res == 0) {
    puts("SECOND");
    return 0;
  } else
    puts("FIRST");
  int bit = 0;
  for (int i = 30; i >= 0; i--)
    if (res & (1 << i)) {
      bit = i;
      break;
    }
  int need = 0;
  int needlen = 0;
  for (int i = 0; i < ((int)(lens).size()); i++)
    if (lens[i] & (1 << bit)) {
      need = lens[i] - (lens[i] ^ res);
      needlen = lens[i];
      break;
    }
  int x1, x2, qwertyuiopasdfghjklzxcvbnm, y2;
  for (int i = 0; i < ((int)(y).size()); i++) {
    if (y[i] == 0 || y[i] == m) continue;
    int cnt = 0;
    int len = 0;
    x1 = 0;
    qwertyuiopasdfghjklzxcvbnm = y2 = y[i];
    for (int j = 0; j < ((int)(segv[i]).size()) - 1; j++) {
      if (!segv[i][j].second)
        cnt++;
      else
        cnt--;
      if (cnt == 0) len += segv[i][j + 1].first - segv[i][j].first;
    }
    if (len != needlen) continue;
    len = cnt = 0;
    for (int j = 0; j < ((int)(segv[i]).size()) - 1; j++) {
      if (!segv[i][j].second)
        cnt++;
      else
        cnt--;
      if (cnt == 0) {
        len += segv[i][j + 1].first - segv[i][j].first;
        if (len >= need) {
          len -= segv[i][j + 1].first - segv[i][j].first;
          x2 = segv[i][j].first + (need - len);
          out(x1, x2, qwertyuiopasdfghjklzxcvbnm, y2);
        }
      }
    }
  }
  for (int i = 0; i < ((int)(x).size()); i++) {
    if (x[i] == 0 || x[i] == n) continue;
    int cnt = 0;
    int len = 0;
    x1 = x2 = x[i];
    qwertyuiopasdfghjklzxcvbnm = 0;
    for (int j = 0; j < ((int)(segg[i]).size()) - 1; j++) {
      if (!segg[i][j].second)
        cnt++;
      else
        cnt--;
      if (cnt == 0) len += segg[i][j + 1].first - segg[i][j].first;
    }
    if (len != needlen) continue;
    len = cnt = 0;
    for (int j = 0; j < ((int)(segg[i]).size()) - 1; j++) {
      if (!segg[i][j].second)
        cnt++;
      else
        cnt--;
      if (cnt == 0) {
        len += segg[i][j + 1].first - segg[i][j].first;
        if (len >= need) {
          len -= segg[i][j + 1].first - segg[i][j].first;
          y2 = segg[i][j].first + (need - len);
          out(x1, x2, qwertyuiopasdfghjklzxcvbnm, y2);
        }
      }
    }
  }
  if (vseg.x1 != -1 && needlen == vseg.len)
    out(vseg.x1, vseg.x1 + need, vseg.qwertyuiopasdfghjklzxcvbnm, vseg.y2);
  out(gseg.x1, gseg.x1, gseg.qwertyuiopasdfghjklzxcvbnm,
      gseg.qwertyuiopasdfghjklzxcvbnm + need);
  return 0;
}
