#include <bits/stdc++.h>
using namespace std;
template <class T>
T abs(T x) {
  return x > 0 ? x : -x;
}
int n;
int m;
int k;
int xx[100000];
int yy[100000];
map<int, int> allx, ally;
int ox, oy;
vector<pair<int, int> > v[100000], vv[100000];
vector<pair<int, int> > h[100000], hh[100000];
int rx[100000], ry[100000];
int getx(int x) {
  if (allx.find(x) != allx.end()) return allx[x];
  xx[ox] = x;
  allx[x] = ox++;
  return ox - 1;
}
int gety(int y) {
  if (ally.find(y) != ally.end()) return ally[y];
  yy[oy] = y;
  ally[y] = oy++;
  return oy - 1;
}
int main() {
  scanf("%d%d%d", &m, &n, &k);
  for (int i = 0; i < k; i++) {
    int x1, y8687969, x2, y2;
    scanf("%d%d%d%d", &x1, &y8687969, &x2, &y2);
    if (x1 > x2) swap(x1, x2);
    if (y8687969 > y2) swap(y8687969, y2);
    if (x1 == x2)
      v[getx(x1)].push_back(make_pair(y8687969, y2));
    else
      h[gety(y8687969)].push_back(make_pair(x1, x2));
  }
  int ans = 0;
  if ((n - oy - 1) & 1) ans ^= m;
  if ((m - ox - 1) & 1) ans ^= n;
  for (int i = 0; i < ox; i++) {
    int cur = n, l = -1, r = -1;
    sort((v[i]).begin(), (v[i]).end());
    for (int j = 0; j < ((int)(v[i]).size()); j++)
      if (r < v[i][j].first) {
        if (l != -1) vv[i].push_back(make_pair(l, r));
        cur -= r - l;
        l = v[i][j].first;
        r = v[i][j].second;
      } else
        r = max(r, v[i][j].second);
    vv[i].push_back(make_pair(l, r));
    cur -= r - l;
    ans ^= cur;
    rx[i] = cur;
  }
  for (int i = 0; i < oy; i++) {
    int cur = m, l = -1, r = -1;
    sort((h[i]).begin(), (h[i]).end());
    for (int j = 0; j < ((int)(h[i]).size()); j++)
      if (r < h[i][j].first) {
        if (l != -1) hh[i].push_back(make_pair(l, r));
        cur -= r - l;
        l = h[i][j].first;
        r = h[i][j].second;
      } else
        r = max(r, h[i][j].second);
    hh[i].push_back(make_pair(l, r));
    cur -= r - l;
    ans ^= cur;
    ry[i] = cur;
  }
  if (ans == 0)
    printf("SECOND\n");
  else {
    printf("FIRST\n");
    if (m - ox - 1 > 0 && (ans ^ n) <= n) {
      for (int i = 1; i < m; i++)
        if (allx.find(i) == allx.end()) {
          printf("%d %d %d %d\n", i, 0, i, n - (ans ^ n));
          return 0;
        }
    }
    if (n - oy - 1 > 0 && (ans ^ m) <= m) {
      for (int i = 1; i < n; i++)
        if (ally.find(i) == ally.end()) {
          printf("%d %d %d %d\n", 0, i, m - (ans ^ m), i);
          return 0;
        }
    }
    for (int i = 0; i < ox; i++)
      if ((ans ^ rx[i]) <= rx[i]) {
        int cur = rx[i] - (ans ^ rx[i]), pos = 0;
        for (int j = 0; j < ((int)(vv[i]).size()); j++)
          if (cur > vv[i][j].first - pos) {
            cur -= vv[i][j].first - pos;
            pos = vv[i][j].second;
          } else
            break;
        pos += cur;
        printf("%d %d %d %d\n", xx[i], 0, xx[i], pos);
        return 0;
      }
    for (int i = 0; i < oy; i++)
      if ((ans ^ ry[i]) <= ry[i]) {
        int cur = ry[i] - (ans ^ ry[i]), pos = 0;
        for (int j = 0; j < ((int)(hh[i]).size()); j++)
          if (cur > hh[i][j].first - pos) {
            cur -= hh[i][j].first - pos;
            pos = hh[i][j].second;
          } else
            break;
        pos += cur;
        printf("%d %d %d %d\n", 0, yy[i], pos, yy[i]);
        return 0;
      }
  }
  return 0;
}
