#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:60000000")
using namespace std;
const double PI = acos(-1.0);
const double eps = 1e-12;
const int INF = (1 << 30) - 1;
const long long LLINF = ((long long)1 << 62) - 1;
int n, m, k;
int x0, Y0, x1, y111;
map<int, vector<pair<int, int> > > vert, hor;
vector<pair<int, int> > EV;
map<int, int> vs, hs;
vector<pair<int, int> > scanline(vector<pair<int, int> > &vp, int &sum, int n) {
  EV.clear();
  for (int i = 0; i < (int)(vp.size()); i++) {
    if (vp[i].first > vp[i].second) swap(vp[i].first, vp[i].second);
    EV.push_back(make_pair(vp[i].first, 0));
    EV.push_back(make_pair(vp[i].second, 1));
  }
  sort((EV).begin(), (EV).end());
  vector<pair<int, int> > ans;
  int cl = 0;
  int cnt = 0;
  sum = 0;
  for (int i = 0; i < (int)(EV.size()); i++) {
    if (EV[i].second == 0) {
      cnt++;
      if (cnt == 1) {
        if (cl != EV[i].first) ans.push_back(make_pair(cl, EV[i].first));
        sum += EV[i].first - cl;
      }
    } else {
      cnt--;
      if (cnt == 0) {
        cl = EV[i].first;
      }
    }
  }
  if (cl < n) ans.push_back(make_pair(cl, n));
  sum += n - cl;
  return ans;
}
int Sum(vector<pair<int, int> > &vp) {
  int ans = 0;
  for (int i = 0; i < (int)(vp.size()); i++) ans += vp[i].second - vp[i].first;
  return ans;
}
int getsum(vector<pair<int, int> > &vp, int sum) {
  for (int i = 0; i < vp.size(); i++) {
    if (sum <= vp[i].second - vp[i].first)
      return vp[i].first + sum;
    else
      sum -= vp[i].second - vp[i].first;
  }
  return 0;
}
int main() {
  cin >> n >> m >> k;
  for (int i = 0; i < (int)(k); i++) {
    scanf("%d%d%d%d", &x0, &Y0, &x1, &y111);
    if (x0 == x1)
      vert[x0].push_back(make_pair(Y0, y111));
    else
      hor[Y0].push_back(make_pair(x0, x1));
  }
  int vcnt = 0, hcnt = 0;
  for (map<int, vector<pair<int, int> > >::iterator it = vert.begin();
       it != vert.end(); it++) {
    int sum;
    it->second = scanline(it->second, sum, m);
    vcnt++;
    vs[sum]++;
  }
  if ((n - 1) - vcnt > 0) vs[m] += (n - 1) - vcnt;
  for (map<int, vector<pair<int, int> > >::iterator it = hor.begin();
       it != hor.end(); it++) {
    int sum;
    it->second = scanline(it->second, sum, n);
    hcnt++;
    hs[sum]++;
  }
  if ((m - 1) - hcnt > 0) hs[n] += (m - 1) - hcnt;
  int G = 0;
  for (map<int, int>::iterator it = vs.begin(); it != vs.end(); it++) {
    G ^= it->first * (it->second % 2);
  }
  for (map<int, int>::iterator it = hs.begin(); it != hs.end(); it++) {
    G ^= it->first * (it->second % 2);
  }
  if (G == 0) {
    cout << "SECOND" << endl;
  } else {
    cout << "FIRST" << endl;
    for (map<int, int>::iterator it = vs.begin(); it != vs.end(); it++) {
      if ((G ^ it->first) <= it->first) {
        if (it->first == m) {
          for (int i = 1;; i++) {
            if (vert.count(i) == 0) {
              cout << i << " " << 0 << " " << i << " "
                   << it->first - (G ^ it->first) << endl;
              return 0;
            }
          }
        } else {
          for (map<int, vector<pair<int, int> > >::iterator it2 = vert.begin();
               it2 != vert.end(); it2++) {
            int sum = Sum(it2->second);
            if (sum != it->first) continue;
            int y = getsum(it2->second, it->first - (G ^ it->first));
            cout << it2->first << " " << 0 << " " << it2->first << " " << y
                 << endl;
            return 0;
          }
        }
      }
    }
    for (map<int, int>::iterator it = hs.begin(); it != hs.end(); it++) {
      if ((G ^ it->first) <= it->first) {
        if (it->first == n) {
          for (int i = 1;; i++) {
            if (hor.count(i) == 0) {
              cout << 0 << " " << i << " " << it->first - (G ^ it->first) << " "
                   << i << endl;
              return 0;
            }
          }
        } else {
          for (map<int, vector<pair<int, int> > >::iterator it2 = hor.begin();
               it2 != hor.end(); it2++) {
            int sum = Sum(it2->second);
            if (sum != it->first) continue;
            int y = getsum(it2->second, it->first - (G ^ it->first));
            cout << 0 << " " << it2->first << " " << y << " " << it2->first
                 << endl;
            return 0;
          }
        }
      }
    }
  }
  return 0;
}
