#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, k;
  int x1, x2, y1, y2;
  cin >> n >> m >> k;
  map<int, vector<pair<int, int> > > cols;
  map<int, vector<pair<int, int> > > rows;
  map<int, int> sc;
  map<int, int> sr;
  for (int i = 0; i < k; i++) {
    cin >> x1 >> y1 >> x2 >> y2;
    if (x1 == x2)
      cols[x1].push_back(make_pair(min(y1, y2), max(y1, y2)));
    else
      rows[y1].push_back(make_pair(min(x1, x2), max(x1, x2)));
  }
  vector<pair<int, int> > sizes;
  map<int, vector<pair<int, int> > >::iterator it;
  vector<pair<int, int> > cuts;
  int ans = 0;
  for (it = cols.begin(); it != cols.end(); it++) {
    cuts = (*it).second;
    int sum = 0, last = 0;
    sort(cuts.begin(), cuts.end());
    for (int i = 0; i < cuts.size(); i++) {
      if (cuts[i].first >= last) {
        sum += cuts[i].second - cuts[i].first;
        last = cuts[i].second;
      }
      if (cuts[i].second > last) {
        sum += cuts[i].second - last;
        last = cuts[i].second;
      }
    }
    ans ^= (m - sum);
    sc[(*it).first] = m - sum;
  }
  for (it = rows.begin(); it != rows.end(); it++) {
    cuts = (*it).second;
    int sum = 0, last = 0;
    sort(cuts.begin(), cuts.end());
    for (int i = 0; i < cuts.size(); i++) {
      if (cuts[i].first >= last) {
        sum += cuts[i].second - cuts[i].first;
        last = cuts[i].second;
      }
      if (cuts[i].second > last) {
        sum += cuts[i].second - last;
        last = cuts[i].second;
      }
    }
    ans ^= (n - sum);
    sr[(*it).first] = n - sum;
  }
  if ((n - 1 - cols.size()) % 2) ans ^= m;
  if ((m - 1 - rows.size()) % 2) ans ^= n;
  if (ans == 0)
    cout << "SECOND" << endl;
  else {
    cout << "FIRST" << endl;
    if (cols.size() < n - 1 && (ans ^ m) < m) {
      int col = 1;
      while (cols.find(col) != cols.end()) col++;
      cout << col << " 0 " << col << " " << m - (ans ^ m) << endl;
      return 0;
    }
    if (rows.size() < m - 1 && (ans ^ n) < n) {
      int row = 1;
      while (rows.find(row) != rows.end()) row++;
      cout << "0 " << row << " " << n - (ans ^ n) << " " << row << endl;
      return 0;
    }
    for (it = cols.begin(); it != cols.end(); it++) {
      int x = (*it).first;
      if ((sc[x] ^ ans) >= sc[x]) continue;
      int need = (sc[x] ^ ans), last = 0, sum = 0;
      cuts = (*it).second;
      sort(cuts.begin(), cuts.end());
      for (int i = 0; i < cuts.size() && need; i++) {
        if (cuts[i].first >= last) {
          sum += cuts[i].first - last;
          if (sum <= need)
            last = cuts[i].second;
          else
            last = cuts[i].first - (sum - need);
          continue;
        }
        if (cuts[i].second > last) {
          last = cuts[i].second;
        }
      }
      if (sum < need) last += (need - sum);
      cout << x << " " << last << " " << x << " " << m << endl;
      return 0;
    }
    for (it = rows.begin(); it != rows.end(); it++) {
      int x = (*it).first;
      if ((sr[x] ^ ans) >= sr[x]) continue;
      int need = (sr[x] ^ ans), last = 0, sum = 0;
      cuts = (*it).second;
      sort(cuts.begin(), cuts.end());
      for (int i = 0; i < cuts.size() && need; i++) {
        if (cuts[i].first >= last) {
          sum += cuts[i].first - last;
          if (sum <= need)
            last = cuts[i].second;
          else
            last = cuts[i].first - (sum - need);
          continue;
        }
        if (cuts[i].second > last) {
          last = cuts[i].second;
        }
      }
      if (sum < need) last += (need - sum);
      cout << last << " " << x << " " << n << " " << x << endl;
    }
  }
}
