#include <bits/stdc++.h>
using namespace std;
map<int, vector<pair<int, int> > > mx, my;
map<int, int> lx, ly;
int get_len(vector<pair<int, int> > &v) {
  sort(v.begin(), v.end());
  int ans = 0, pre = 0;
  for (__typeof((v).begin()) it = (v).begin(); it != (v).end(); it++) {
    int l = it->first, r = it->second;
    if (r <= pre) continue;
    ans += r - max(pre, l);
    pre = r;
  }
  return ans;
}
int solve(vector<pair<int, int> > &v, int l) {
  int pre = 0;
  for (__typeof((v).begin()) it = (v).begin(); it != (v).end(); it++) {
    if (it->second <= pre) continue;
    if (it->first <= pre) {
      pre = it->second;
      continue;
    }
    if (it->first - pre < l) {
      l -= it->first - pre;
      pre = it->second;
    } else {
      return pre + l;
    }
  }
  return pre + l;
}
int main() {
  int n, m, k;
  scanf("%d%d%d", &n, &m, &k);
  while (k--) {
    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)
      mx[x1].push_back(make_pair(y1, y2));
    else if (y1 == y2)
      my[y1].push_back(make_pair(x1, x2));
    else
      puts("QQ");
  }
  for (int i = 1; i < n; i++)
    if (!mx.count(i)) {
      mx[i].clear();
      break;
    }
  for (int i = 1; i < m; i++)
    if (!my.count(i)) {
      my[i].clear();
      break;
    }
  for (__typeof((mx).begin()) it = (mx).begin(); it != (mx).end(); it++)
    lx[it->first] = get_len(it->second);
  for (__typeof((my).begin()) it = (my).begin(); it != (my).end(); it++)
    ly[it->first] = get_len(it->second);
  int sg = 0;
  if ((n - 1 - ((int)(lx).size())) % 2 != 0) sg ^= m;
  if ((m - 1 - ((int)(ly).size())) % 2 != 0) sg ^= n;
  for (__typeof((lx).begin()) it = (lx).begin(); it != (lx).end(); it++)
    sg ^= m - it->second;
  for (__typeof((ly).begin()) it = (ly).begin(); it != (ly).end(); it++)
    sg ^= n - it->second;
  if (sg == 0)
    puts("SECOND");
  else {
    puts("FIRST");
    for (__typeof((lx).begin()) it = (lx).begin(); it != (lx).end(); it++) {
      int r = m - it->second;
      if ((sg ^ r) < r) {
        printf("%d %d %d %d\n", it->first, 0, it->first,
               solve(mx[it->first], r - (sg ^ r)));
        return 0;
      }
    }
    for (__typeof((ly).begin()) it = (ly).begin(); it != (ly).end(); it++) {
      int r = n - it->second;
      if ((sg ^ r) < r) {
        printf("%d %d %d %d\n", 0, it->first,
               solve(my[it->first], r - (sg ^ r)), it->first);
        return 0;
      }
    }
  }
}
