#include <bits/stdc++.h>
using namespace std;
const int N = 100000 + 10;
const int M = 1000000007;
const double eps = 1e-9;
const double PI = acos(-1);
const int oo = 1000000000;
int R, C, n, ans;
map<int, set<pair<int, int> > > mp[2];
set<pair<int, int> >::iterator it;
void go(int x, int y, bool f, int d) {
  if (x > y) swap(x, y);
  it = mp[f][d].lower_bound(pair<int, int>(x, -1));
  while (it != mp[f][d].begin()) {
    --it;
    if (it->second < x) {
      ++it;
      break;
    }
    x = min(x, it->first);
    y = max(y, it->second);
    it = mp[f][d].erase(it);
  }
  while (it != mp[f][d].end()) {
    if (it->first > y) break;
    y = max(y, it->second);
    it = mp[f][d].erase(it);
  }
  mp[f][d].insert(pair<int, int>(x, y));
}
void fix(bool dim, int id, int need) {
  int x[2], y[2];
  x[dim] = y[dim] = id;
  x[dim ^ 1] = 0;
  int ls = 0;
  for (auto &it : mp[dim][id]) {
    int d = it.first - ls;
    if (d >= need) break;
    need -= d;
    ls = it.second;
  }
  y[dim ^ 1] = ls + need;
  cout << x[0] << " " << x[1] << " " << y[0] << " " << y[1] << endl;
  exit(0);
}
int main() {
  cin >> R >> C >> n;
  if ((R - 1) % 2) ans ^= C;
  if ((C - 1) % 2) ans ^= R;
  for (int a1, b1, a2, b2, i = 0; i < n; ++i) {
    scanf("%d%d%d%d", &a1, &b1, &a2, &b2);
    if (a1 == a2)
      go(b1, b2, 0, a1);
    else
      go(a1, a2, 1, b1);
  }
  vector<pair<int, int> > v[2];
  for (int f = 0; f < 2; ++f) {
    for (auto &i : mp[f]) {
      int sz;
      if (!f)
        sz = C;
      else
        sz = R;
      for (auto &it : i.second) sz -= it.second - it.first;
      if (!f)
        ans ^= C ^ sz;
      else
        ans ^= R ^ sz;
      v[f].push_back(pair<int, int>(sz, i.first));
    }
  }
  if (ans) {
    puts("FIRST");
    for (int i = 1; i < min(R, N); ++i)
      if (mp[0].find(i) == mp[0].end()) {
        v[0].push_back(pair<int, int>(C, i));
        break;
      }
    for (int i = 1; i < min(C, N); ++i)
      if (mp[1].find(i) == mp[1].end()) {
        v[1].push_back(pair<int, int>(R, i));
        break;
      }
    for (int k = 0; k < 2; ++k)
      for (int i = 0; i < v[k].size(); ++i) {
        int d = v[k][i].first;
        if ((d ^ ans) < d) fix(k, v[k][i].second, d - (d ^ ans));
      }
    assert(0);
  } else
    puts("SECOND");
  return 0;
}
