#include <bits/stdc++.h>
using namespace std;
map<int, vector<pair<int, int> > > hors, vers;
vector<vector<int> > pieces;
vector<pair<int, bool> > position;
vector<int> total;
int W, H, k;
void addPieces(vector<pair<int, int> >& cuts, int sz, int coordinate,
               bool orientation) {
  pieces.push_back(vector<int>());
  position.push_back(make_pair(coordinate, orientation));
  total.push_back(0);
  sort(cuts.begin(), cuts.end());
  int nearest = 0, furthest = 0;
  for (int i = 0; i < cuts.size(); i++) {
    if (cuts[i].first > furthest) {
      pieces.back().push_back(furthest - nearest);
      pieces.back().push_back(cuts[i].first - furthest);
      total.back() += pieces.back().back();
      nearest = cuts[i].first;
    }
    furthest = max(furthest, cuts[i].second);
  }
  pieces.back().push_back(furthest - nearest);
  pieces.back().push_back(sz - furthest);
  total.back() += pieces.back().back();
  return;
}
void addPieces(map<int, vector<pair<int, int> > >& cuts, int sz,
               bool orientation) {
  for (__typeof((cuts).begin()) it = (cuts).begin(); it != (cuts).end(); it++)
    addPieces(it->second, sz, it->first, orientation);
  return;
}
int getMsb(int x) {
  while (x != (x & -x)) x -= (x & -x);
  return x;
}
int main() {
  int c, c2;
  scanf("%d%d%d", &W, &H, &k);
  for (c = 0; c < k; c++) {
    int x1, y1, x2, y2;
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    if (x1 > x2) swap(x1, x2);
    if (y1 > y2) swap(y1, y2);
    if (x1 == x2)
      vers[x1].push_back(make_pair(y1, y2));
    else
      hors[y1].push_back(make_pair(x1, x2));
  }
  int emptyhor = H - 1, emptyver = W - 1;
  int hor = 1;
  for (__typeof((hors).begin()) it = (hors).begin(); it != (hors).end(); it++)
    if (hor != it->first) {
      emptyhor = hor;
      break;
    } else
      hor++;
  int ver = 1;
  for (__typeof((vers).begin()) it = (vers).begin(); it != (vers).end(); it++)
    if (ver != it->first) {
      emptyver = ver;
      break;
    } else
      ver++;
  if ((W - vers.size() - 1) & 1) vers[emptyver];
  if ((H - hors.size() - 1) & 1) hors[emptyhor];
  addPieces(hors, W, 0);
  addPieces(vers, H, 1);
  int ret = 0;
  for (c = 0; c < pieces.size(); c++) ret ^= total[c];
  if (!ret)
    printf("SECOND\n");
  else {
    printf("FIRST\n");
    int msb = getMsb(ret);
    int i;
    for (c = 0; c < pieces.size(); c++)
      if (total[c] & msb) i = c;
    int next = total[i] ^ ret;
    int remove = total[i] - next;
    int x1 = 0, y1 = position[i].first;
    int x2 = x1, y2 = y1;
    for (c = 0; remove > 0; c += 2) {
      x2 += pieces[i][c];
      x2 += min(pieces[i][c + 1], remove);
      remove -= pieces[i][c + 1];
    }
    if (position[i].second) {
      swap(x1, y1);
      swap(x2, y2);
    }
    printf("%d %d %d %d\n", x1, y1, x2, y2);
  }
  return 0;
}
