#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
struct Seg {
  int x1, y1, x2, y2;
};
Seg c[N], r[N], tmp[N * 2];
int cl, rl, ans[N * 2], al;
bool cmpC(Seg a, Seg b) {
  if (a.y1 == b.y1) return a.x1 < b.x1;
  return a.y1 < b.y1;
}
bool cmpR(Seg a, Seg b) {
  if (a.x1 == b.x1) return a.y1 < b.y1;
  return a.x1 < b.x1;
}
void addAns(int len, int x1, int y1, int x2, int y2) {
  ans[al] = len;
  tmp[al].x1 = x1;
  tmp[al].y1 = y1;
  tmp[al].x2 = x2;
  tmp[al].y2 = y2;
  al++;
}
int main() {
  int n, m, k;
  while (cin >> n >> m >> k) {
    int i, j, f[4];
    cl = rl = al = 0;
    for (i = 0; i < k; i++) {
      scanf("%d%d%d%d", &f[0], &f[1], &f[2], &f[3]);
      if (f[0] == f[2]) {
        if (f[1] > f[3]) {
          int t = f[1];
          f[1] = f[3];
          f[3] = t;
        }
        r[rl].x1 = f[0];
        r[rl].y1 = f[1];
        r[rl].x2 = f[2];
        r[rl++].y2 = f[3];
      } else {
        if (f[0] > f[2]) {
          int t = f[0];
          f[0] = f[2];
          f[2] = t;
        }
        c[cl].x1 = f[0];
        c[cl].y1 = f[1];
        c[cl].x2 = f[2];
        c[cl++].y2 = f[3];
      }
    }
    sort(c, c + cl, cmpC);
    sort(r, r + rl, cmpR);
    int nn = n, mm = m;
    for (i = 0; i < cl;) {
      int tn = 0;
      int tc = c[i].y1;
      while (i < cl && c[i].y1 == tc) {
        if (c[i].x2 <= tn) {
          i++;
          continue;
        }
        if (c[i].x1 > tn) addAns(c[i].x1 - tn, tn, tc, c[i].x1, tc);
        tn = c[i++].x2;
      }
      if (tn != nn) addAns(nn - tn, tn, tc, nn, tc);
      m--;
    }
    for (i = 0; i < rl;) {
      int tn = r[i].x1;
      int tc = 0;
      while (i < rl && r[i].x1 == tn) {
        if (r[i].y2 <= tc) {
          i++;
          continue;
        }
        if (r[i].y1 > tc) addAns(r[i].y1 - tc, tn, tc, tn, r[i].y1);
        tc = r[i++].y2;
      }
      if (tc != mm) addAns(mm - tc, tn, tc, tn, mm);
      n--;
    }
    if ((n - 1) & 1) {
      ans[al] = mm;
      int cnt = 1;
      for (i = 0; i < rl; cnt++) {
        if (r[i].x1 != cnt) break;
        while (i < rl && r[i].x1 == cnt) i++;
      }
      if (i == rl) cnt = nn - 1;
      tmp[al].x1 = tmp[al].x2 = cnt;
      tmp[al].y1 = 0;
      tmp[al].y2 = mm;
      al++;
    }
    if ((m - 1) & 1) {
      ans[al] = nn;
      int cnt = 1;
      for (i = 0; i < cl; cnt++) {
        if (c[i].y1 != cnt) break;
        while (i < cl && c[i].y1 == cnt) i++;
      }
      if (i == cl) cnt = mm - 1;
      tmp[al].y1 = tmp[al].y2 = cnt;
      tmp[al].x1 = 0;
      tmp[al].x2 = nn;
      al++;
    }
    int s = 0;
    for (i = 0; i < al;) {
      int ts = 0;
      int tn = tmp[i].x1;
      int tc = tmp[i].y1;
      while (i < al && tn == tmp[i].x1 && tmp[i].x1 == tmp[i].x2)
        ts += ans[i++];
      while (i < al && tc == tmp[i].y1 && tmp[i].y1 == tmp[i].y2)
        ts += ans[i++];
      s ^= ts;
    }
    if (s == 0)
      cout << "SECOND" << endl;
    else {
      cout << "FIRST" << endl;
      for (i = 0; i < al; i += j) {
        int ts = 0;
        j = 0;
        int tn = tmp[i].x1;
        int tc = tmp[i].y1;
        while (i + j < al && tn == tmp[i + j].x1 &&
               tmp[i + j].x1 == tmp[i + j].x2)
          ts += ans[i + j], j++;
        while (i + j < al && tc == tmp[i + j].y1 &&
               tmp[i + j].y1 == tmp[i + j].y2)
          ts += ans[i + j], j++;
        if (ts >= (s ^ ts)) {
          ts -= (s ^ ts);
          if (tmp[i].x1 == tmp[i].x2) {
            int ty;
            j = 0;
            while (ts) {
              if (ts > ans[i + j]) {
                ts -= ans[i + j];
                j++;
              } else {
                ty = tmp[i + j].y1 + ts;
                break;
              }
            }
            cout << tmp[i].x1 << " " << tmp[i].y1 << " " << tmp[i].x2 << " "
                 << ty << endl;
          } else {
            int tx;
            j = 0;
            while (ts) {
              if (ts > ans[i + j]) {
                ts -= ans[i + j];
                j++;
              } else {
                tx = tmp[i + j].x1 + ts;
                break;
              }
            }
            cout << tmp[i].x1 << " " << tmp[i].y1 << " " << tx << " "
                 << tmp[i].y2 << endl;
          }
          break;
        }
      }
    }
  }
  return 0;
}
