#include <bits/stdc++.h>
using namespace std;
const int N = 500000;
struct data {
  int len, x, y;
};
int n, m, SG, K, tot;
data seg[N];
map<int, vector<pair<int, int> > > col, row;
int maxx(int a, int b) { return a > b ? a : b; }
void swap(int &a, int &b) {
  int t = a;
  a = b;
  b = t;
}
void init() {
  scanf("%d%d%d", &n, &m, &K);
  int x1, y1, x2, y2;
  for (int i = 1; i <= K; ++i) {
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    if (x1 > x2) swap(x1, x2);
    if (y1 > y2) swap(y1, y2);
    if (x1 == x2)
      col[x1].push_back(make_pair(y1, y2));
    else
      row[y1].push_back(make_pair(x1, x2));
  }
}
int length(vector<pair<int, int> > a, int L) {
  sort(a.begin(), a.end());
  vector<pair<int, int> >::iterator i;
  int last = 0, s = 0, l, r;
  for (i = a.begin(); i != a.end(); ++i) {
    l = i->first;
    r = i->second;
    if (l > last) s += l - last;
    last = maxx(last, r);
  }
  s += L - last;
  return s;
}
int add(vector<pair<int, int> > a, int L) {
  sort(a.begin(), a.end());
  vector<pair<int, int> >::iterator i;
  int last = 0, s = 0, l, r;
  for (i = a.begin(); i != a.end(); ++i) {
    l = i->first;
    r = i->second;
    if (l > last) L -= l - last;
    if (L <= 0) {
      L += l - last;
      return last + L;
    }
    last = maxx(last, r);
  }
  s = last + L;
  return s;
}
void work() {
  int tn = n, tm = m;
  map<int, vector<pair<int, int> > >::iterator i;
  int len, tc = 0, tr = 0;
  for (i = col.begin(); i != col.end(); ++i) {
    --tn;
    if (!tc && n - tn != (i->first)) tc = n - tn;
    len = length(i->second, m);
    SG ^= len;
    ++tot;
    seg[tot].len = len;
    seg[tot].x = (i->first);
    seg[tot].y = 0;
  }
  if (!(tn % 2)) SG ^= m;
  for (i = row.begin(); i != row.end(); ++i) {
    --tm;
    if (!tr && m - tm != (i->first)) tr = m - tm;
    len = length(i->second, n);
    SG ^= len;
    ++tot;
    seg[tot].len = len;
    seg[tot].x = 0;
    seg[tot].y = (i->first);
  }
  if (!(tm % 2)) SG ^= n;
  if (!SG)
    cout << "SECOND\n";
  else {
    cout << "FIRST\n";
    if (tn > 1) {
      if (tc == 0) tc = n - tn + 1;
      ++tot;
      seg[tot].len = m;
      seg[tot].x = tc;
      seg[tot].y = 0;
    }
    if (tm > 1) {
      if (tr == 0) tr = m - tm + 1;
      ++tot;
      seg[tot].len = n;
      seg[tot].x = 0;
      seg[tot].y = tr;
    }
    for (int i = 1; i <= tot; ++i)
      if ((seg[i].len ^ SG) < seg[i].len) {
        cout << seg[i].x << ' ' << seg[i].y << ' ';
        len = seg[i].len - (seg[i].len ^ SG);
        if (seg[i].y == 0) {
          len = add(col[seg[i].x], len);
          cout << seg[i].x << ' ' << len << endl;
        } else {
          len = add(row[seg[i].y], len);
          cout << len << ' ' << seg[i].y << endl;
        }
        break;
      }
  }
}
int main() {
  init();
  work();
}
