#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 29;
const double PI = acos(-1);
const double EPS = 1e-8;
void func(vector<pair<int, int> > &v) {
  sort((v).begin(), (v).end());
  int start = -1;
  int end = -1;
  vector<pair<int, int> > res;
  for (int i = 0; i < (int)v.size(); ++i) {
    if (i == 0) {
      start = v[i].first;
      end = v[i].second;
    } else {
      if (v[i].first <= end) {
        (end < v[i].second ? (end = v[i].second, 1) : 0);
      } else {
        res.push_back(pair<int, int>(start, end));
        start = v[i].first;
        end = v[i].second;
      }
    }
  }
  if (start != -1) res.push_back(pair<int, int>(start, end));
  v = res;
}
struct P {
  int v;
  int t, a;
  P(int v, int t, int a) : v(v), t(t), a(a) {}
};
int maxbit(int a) {
  int r = 0;
  while (a) a >>= 1, r++;
  return r - 1;
}
const int N = 200000;
bool tflag[N];
bool yflag[N];
int main() {
  int w, h, k;
  while (cin >> w >> h >> k) {
    for (int i = 0; i < (int)N; ++i) tflag[i] = yflag[i] = 0;
    map<int, vector<pair<int, int> > > tate, yoko;
    for (int i = 0; i < (int)k; ++i) {
      int x1, y1, x2, y2;
      scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
      if (x1 == x2) {
        tate[x1].push_back(pair<int, int>(min(y1, y2), max(y1, y2)));
      } else {
        yoko[y1].push_back(pair<int, int>(min(x1, x2), max(x1, x2)));
      }
    }
    assert(tate.size() <= w - 1 && yoko.size() <= h - 1);
    vector<P> nim;
    for (__typeof((tate).begin()) it = (tate).begin(); it != (tate).end();
         ++it) {
      if (it->first < N) tflag[it->first] = 1;
      vector<pair<int, int> > &v = it->second;
      func(v);
      int t = h;
      for (__typeof((v).begin()) jt = (v).begin(); jt != (v).end(); ++jt) {
        t -= jt->second - jt->first;
      }
      nim.push_back(P(t, 0, it->first));
    }
    for (__typeof((yoko).begin()) it = (yoko).begin(); it != (yoko).end();
         ++it) {
      if (it->first < N) yflag[it->first] = 1;
      vector<pair<int, int> > &v = it->second;
      func(v);
      int t = w;
      for (__typeof((v).begin()) jt = (v).begin(); jt != (v).end(); ++jt) {
        t -= jt->second - jt->first;
      }
      nim.push_back(P(t, 1, it->first));
    }
    if ((w - 1 - tate.size()) % 2 == 1) {
      for (int i = 1; i < w; ++i)
        if (!tflag[i]) {
          nim.push_back(P(h, 0, i));
          break;
        }
    }
    if ((h - 1 - yoko.size()) % 2 == 1) {
      for (int i = 1; i < h; ++i)
        if (!yflag[i]) {
          nim.push_back(P(w, 1, i));
          break;
        }
    }
    int val = 0;
    for (__typeof((nim).begin()) it = (nim).begin(); it != (nim).end(); ++it) {
      val ^= it->v;
    }
    if (val) {
      puts("FIRST");
      int mb = maxbit(val);
      int x1, y1, x2, y2;
      for (__typeof((nim).begin()) it = (nim).begin(); it != (nim).end();
           ++it) {
        if ((it->v) >> mb & 1) {
          int num = it->v - (it->v ^ val);
          assert(num >= 1);
          if (it->t == 0) {
            x1 = x2 = it->a;
            y1 = 0;
            vector<pair<int, int> > &v = tate[it->a];
            int low = 0, high = h;
            while (low + 1 < high) {
              int mid = (low + high) / 2;
              int sum = mid;
              for (__typeof((v).begin()) it = (v).begin(); it != (v).end();
                   ++it) {
                if (it->second <= mid)
                  sum -= it->second - it->first;
                else if (it->first <= mid)
                  sum -= mid - it->first;
              }
              if (sum >= num)
                high = mid;
              else
                low = mid;
            }
            y2 = high;
          } else {
            y1 = y2 = it->a;
            x1 = 0;
            vector<pair<int, int> > &v = yoko[it->a];
            int low = 0, high = w;
            while (low + 1 < high) {
              int mid = (low + high) / 2;
              int sum = mid;
              for (__typeof((v).begin()) it = (v).begin(); it != (v).end();
                   ++it) {
                if (it->second <= mid)
                  sum -= it->second - it->first;
                else if (it->first <= mid)
                  sum -= mid - it->first;
              }
              if (sum >= num)
                high = mid;
              else
                low = mid;
            }
            x2 = high;
          }
          break;
        }
      }
      printf("%d %d %d %d\n", x1, y1, x2, y2);
    } else {
      puts("SECOND");
    }
  }
}
