#include <bits/stdc++.h>
using namespace std;
map<int, vector<pair<int, int> > > ma;
map<int, int> sum;
void output(int a1, int b1, int a2, int b2) {
  printf("%d %d %d %d\n", a1, b1, a2, b2);
  exit(0);
}
int main() {
  int n, m, k, a1, a2, b1, b2, i;
  int kn, km;
  scanf("%d%d%d", &n, &m, &k);
  kn = n - 1;
  km = m - 1;
  for (i = 1; i <= k; ++i) {
    scanf("%d%d%d%d", &a1, &b1, &a2, &b2);
    if (a1 == a2) {
      if (ma[a1].empty()) {
        ma[a1].push_back(make_pair(0, -1));
        ma[a1].push_back(make_pair(0, 1));
        ma[a1].push_back(make_pair(m, -1));
        ma[a1].push_back(make_pair(m, 1));
        kn--;
      }
      ma[a1].push_back(make_pair(min(b1, b2), -1));
      ma[a1].push_back(make_pair(max(b1, b2), 1));
    } else {
      b1 = b1 + n;
      if (ma[b1].empty()) {
        ma[b1].push_back(make_pair(0, -1));
        ma[b1].push_back(make_pair(0, 1));
        ma[b1].push_back(make_pair(n, -1));
        ma[b1].push_back(make_pair(n, 1));
        km--;
      }
      ma[b1].push_back(make_pair(min(a1, a2), -1));
      ma[b1].push_back(make_pair(max(a1, a2), 1));
    }
  }
  for (i = 1; i < n; ++i) {
    if (ma[i].empty()) {
      ma[i].push_back(make_pair(0, -1));
      ma[i].push_back(make_pair(0, 1));
      ma[i].push_back(make_pair(m, -1));
      ma[i].push_back(make_pair(m, 1));
      kn--;
      break;
    }
  }
  for (i = 1; i < m; ++i) {
    if (ma[n + i].empty()) {
      ma[n + i].push_back(make_pair(0, -1));
      ma[n + i].push_back(make_pair(0, 1));
      ma[n + i].push_back(make_pair(n, -1));
      ma[n + i].push_back(make_pair(n, 1));
      km--;
      break;
    }
  }
  int res = ((kn % 2) * m) ^ ((km % 2) * n);
  int si;
  for (map<int, vector<pair<int, int> > >::iterator it = ma.begin();
       it != ma.end(); ++it) {
    vector<pair<int, int> > vy = it->second;
    sort(vy.begin(), vy.end());
    int tk = 0;
    int tsum = 0;
    for (i = 0, si = vy.size() - 1; i < si; ++i) {
      tk += vy[i].second;
      if (tk == 0) {
        tsum += vy[i + 1].first - vy[i].first;
      }
    }
    res = res ^ tsum;
    sum[it->first] = tsum;
  }
  if (res == 0) {
    printf("SECOND\n");
    return 0;
  }
  printf("FIRST\n");
  for (map<int, vector<pair<int, int> > >::iterator it = ma.begin();
       it != ma.end(); ++it) {
    int ts = sum[it->first];
    int tt = res ^ ts;
    if (tt == 0) {
      if (it->first < n)
        output(it->first, 0, it->first, m);
      else
        output(0, it->first - n, n, it->first - n);
    } else if (ts > tt) {
      vector<pair<int, int> > vy = it->second;
      sort(vy.begin(), vy.end());
      int tsum = 0;
      int tk = 0;
      int del = ts - tt;
      for (i = 0, si = vy.size() - 1; i < si; ++i) {
        tk += vy[i].second;
        if (tk == 0) {
          if (tsum + vy[i + 1].first - vy[i].first >= del) {
            if (it->first < n)
              output(it->first, 0, it->first, vy[i].first + del - tsum);
            else
              output(0, it->first - n, vy[i].first + del - tsum, it->first - n);
          } else {
            tsum += vy[i + 1].first - vy[i].first;
          }
        }
      }
    }
  }
  return 0;
}
