#include <bits/stdc++.h>
using namespace std;
const long long INF = 1E9 + 7;
template <class C>
void mini(C& a4, C b4) {
  a4 = min(a4, b4);
}
template <class C>
void maxi(C& a4, C b4) {
  a4 = max(a4, b4);
}
long long n, m, k, len[2], ile[2], val;
pair<long long, long long> best;
map<pair<long long, long long>, vector<pair<long long, long long> > > M;
map<long long, pair<long long, long long> > kto;
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> m >> k;
  len[0] = m;
  len[1] = n;
  while (k--) {
    long long x, y, xx, yy;
    cin >> x >> y >> xx >> yy;
    if (x == xx) {
      M[pair<long long, long long>(x, 0)].push_back(
          pair<long long, long long>(min(y, yy), 1));
      M[pair<long long, long long>(x, 0)].push_back(
          pair<long long, long long>(max(y, yy), -1));
    } else {
      M[pair<long long, long long>(y, 1)].push_back(
          pair<long long, long long>(min(x, xx), 1));
      M[pair<long long, long long>(y, 1)].push_back(
          pair<long long, long long>(max(x, xx), -1));
    }
  }
  for (__typeof((M).begin()) i = ((M).begin()); i != (M).end(); ++i) {
    ile[i->first.second]++;
    vector<pair<long long, long long> > v = i->second;
    sort((v).begin(), (v).end());
    long long cnt = 0, act = 0, last = 0;
    for (__typeof((v).begin()) j = ((v).begin()); j != (v).end(); ++j) {
      if (j->first != last) {
        if (act == 0) cnt += j->first - last;
        last = j->first;
      }
      act += j->second;
    }
    cnt += len[i->first.second] - last;
    kto[cnt] = i->first;
    val ^= cnt;
  }
  for (long long i = 0; i < (2); ++i)
    if ((len[1 - i] - 1 - ile[i]) % 2) {
      pair<long long, long long> p = pair<long long, long long>(1, i);
      while (M.count(p)) p.first++;
      kto[len[i]] = p;
      val ^= len[i];
    }
  if (val == 0)
    cout << "SECOND" << endl;
  else {
    cout << "FIRST" << endl;
    long long usun, naj;
    for (__typeof((kto).begin()) i = ((kto).begin()); i != (kto).end(); ++i) {
      naj = i->first;
      usun = naj - (val ^ naj);
      if (1 <= usun && usun <= naj) {
        best = i->second;
        break;
      }
    }
    vector<pair<long long, long long> > v = M[best];
    sort((v).begin(), (v).end());
    assert(usun > 0);
    long long cnt = 0, act = 0, last = 0;
    for (__typeof((v).begin()) j = ((v).begin()); j != (v).end(); ++j) {
      if (j->first != last) {
        if (act == 0) {
          long long jest = j->first - last;
          if (jest >= usun) goto kon;
          usun -= jest;
        }
        last = j->first;
      }
      act += j->second;
    }
  kon:
    long long zak = last + usun;
    if (best.second == 0)
      cout << best.first << " " << 0 << " " << best.first << " " << zak << endl;
    else
      cout << 0 << " " << best.first << " " << zak << " " << best.first << endl;
    return 0;
  }
  return 0;
}
