#include <bits/stdc++.h>
using namespace std;
map<int, int> mp1, mp2;
struct node {
  int dir;
  int x1;
  int y1;
  int y2;
  int len;
  int nd;
} p[100011] = {0};
vector<node> v1[100011], v2[100011];
int siz1[100011], siz2[100011];
bool cmp(node a, node b) { return a.nd < b.nd; }
int main() {
  int n, m, k;
  while (scanf("%d%d%d", &n, &m, &k) > 0) {
    for (int i = 0; i < k; i++) {
      int a, b, c, d;
      scanf("%d%d%d%d", &a, &b, &c, &d);
      if (a == c) {
        node temp;
        if (b > d) swap(b, d);
        temp.dir = 0;
        temp.y1 = b;
        temp.y2 = d;
        temp.x1 = a;
        temp.len = d - b;
        temp.nd = b;
        p[i] = temp;
        int siz = mp1.size();
        int k;
        if (mp1[a] == 0)
          k = mp1[a] = siz + 1;
        else
          k = mp1[a];
        v1[k].push_back(temp);
      } else {
        node temp;
        if (a > c) swap(a, c);
        temp.dir = 1;
        temp.y1 = a;
        temp.y2 = c;
        temp.x1 = b;
        temp.len = c - a;
        temp.nd = a;
        int siz = mp2.size();
        int k;
        if (mp2[b] == 0)
          k = mp2[b] = siz + 1;
        else
          k = mp2[b];
        p[i] = temp;
        v2[k].push_back(temp);
      }
    }
    int x = mp1.size();
    int y = mp2.size();
    for (int i = 1; i <= mp1.size(); i++) sort(v1[i].begin(), v1[i].end(), cmp);
    for (int i = 1; i <= mp2.size(); i++) sort(v2[i].begin(), v2[i].end(), cmp);
    int res = 0;
    res ^= ((n - 1 - mp1.size()) % 2) * m;
    res ^= ((m - 1 - mp2.size()) % 2) * n;
    for (int i = 1; i <= mp1.size(); i++) {
      int now = 0;
      int get = 0;
      for (int j = 0; j < v1[i].size(); j++) {
        node temp = v1[i][j];
        if (temp.y1 > now) {
          get += temp.y1 - now;
        }
        if (temp.y2 > now) now = temp.y2;
      }
      if (now < m) {
        get += m - now;
      }
      res ^= get;
      siz1[i] = get;
    }
    for (int i = 1; i <= mp2.size(); i++) {
      int now = 0;
      int get = 0;
      int flag = (n == 200000 && v2[i][0].x1 == 17);
      for (int j = 0; j < v2[i].size(); j++) {
        node temp = v2[i][j];
        if (temp.y1 > now) {
          get += temp.y1 - now;
        }
        if (temp.y2 > now) now = temp.y2;
      }
      if (now < n) {
        get += n - now;
      }
      res ^= get;
      siz2[i] = get;
    }
    puts(res ? "FIRST" : "SECOND");
    if (res) {
      if (n - 1 > mp1.size()) {
        int x = 1;
        while (mp1[x]) x++;
        mp1.erase(x);
        if ((res ^ m) <= m) {
          printf("%d %d %d %d\n", x, 0, x, m - (res ^ m));
          goto loop;
        }
      }
      if (m - 1 > mp2.size()) {
        int x = 1;
        while (mp2[x]) x++;
        mp2.erase(x);
        if ((res ^ n) <= n) {
          printf("%d %d %d %d\n", 0, x, n - (res ^ n), x);
          goto loop;
        }
      }
      {
        for (int i = 1; i <= mp1.size(); i++) {
          if ((res ^ siz1[i]) <= siz1[i]) {
            int tp = siz1[i] - (res ^ siz1[i]);
            int now = 0;
            int ress = 0;
            int go = v1[i][0].x1;
            for (int j = 0; j < v1[i].size(); j++) {
              node temp = v1[i][j];
              if (temp.y1 > now) ress += temp.y1 - now;
              if (temp.y2 > now) now = temp.y2;
              if (ress >= tp) {
                printf("%d %d %d %d\n", go, 0, go, temp.y1 - (ress - tp));
                goto loop;
              }
            }
            printf("%d %d %d %d\n", go, 0, go, now - ress + tp);
            goto loop;
          }
        }
        for (int i = 1; i <= mp2.size(); i++) {
          if ((res ^ siz2[i]) <= siz2[i]) {
            int tp = siz2[i] - (res ^ siz2[i]);
            int now = 0;
            int ress = 0;
            int go = v2[i][0].x1;
            for (int j = 0; j < v2[i].size(); j++) {
              node temp = v2[i][j];
              if (temp.y1 > now) ress += temp.y1 - now;
              if (temp.y2 > now) now = temp.y2;
              if (ress >= tp) {
                printf("%d %d %d %d\n", 0, go, temp.y1 - (ress - tp), go);
                goto loop;
              }
            }
            printf("%d %d %d %d\n", 0, go, now - ress + tp, go);
            goto loop;
          }
        }
      }
    }
  loop:;
  }
  return 0;
}
