#include <bits/stdc++.h>
using namespace std;
int n, m, k;
vector<pair<int, pair<int, int> > > X, Y;
vector<pair<int, int> > usedX, usedY;
int findX(int pos, int L) {
  int last = 0, total = 0, xb, xe;
  for (int i = 0; i < (int)X.size(); ++i) {
    if (X[i].first != pos) continue;
    xb = min(L, X[i].second.first);
    xe = min(L, X[i].second.second);
    total += max(0, xb - last);
    last = max(last, xe);
  }
  total += L - last;
  return total;
}
int findY(int pos, int L) {
  int last = 0, total = 0, yb, ye;
  for (int i = 0; i < (int)Y.size(); ++i) {
    if (Y[i].first != pos) continue;
    yb = min(L, Y[i].second.first);
    ye = min(L, Y[i].second.second);
    total += max(0, yb - last);
    last = max(last, ye);
  }
  total += L - last;
  return total;
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 0; i < k; ++i) {
    int xb, yb, xe, ye;
    scanf("%d%d%d%d", &xb, &yb, &xe, &ye);
    if (xb == xe) {
      if (yb > ye) swap(yb, ye);
      X.push_back(make_pair(xb, make_pair(yb, ye)));
    } else {
      if (xb > xe) swap(xb, xe);
      Y.push_back(make_pair(yb, make_pair(xb, xe)));
    }
  }
  sort((X).begin(), (X).end());
  sort((Y).begin(), (Y).end());
  if (X.size() != 0) {
    int last = 0, now = X[0].first, total = 0;
    for (int i = 0; i < (int)X.size(); ++i) {
      if (X[i].first != now) {
        total += m - last;
        usedX.push_back(make_pair(now, total));
        last = total = 0;
        now = X[i].first;
      }
      total += max(0, X[i].second.first - last);
      last = max(last, X[i].second.second);
    }
    total += m - last;
    usedX.push_back(make_pair(now, total));
  }
  if (Y.size() != 0) {
    int last = 0, now = Y[0].first, total = 0;
    for (int i = 0; i < (int)Y.size(); ++i) {
      if (Y[i].first != now) {
        total += n - last;
        usedY.push_back(make_pair(now, total));
        last = total = 0;
        now = Y[i].first;
      }
      total += max(0, Y[i].second.first - last);
      last = max(last, Y[i].second.second);
    }
    total += n - last;
    usedY.push_back(make_pair(now, total));
  }
  int Grundy = 0;
  if ((n - 1 - (int)usedX.size()) % 2 != 0) Grundy = Grundy ^ m;
  if ((m - 1 - (int)usedY.size()) % 2 != 0) Grundy = Grundy ^ n;
  for (int i = 0; i < (int)usedX.size(); ++i) Grundy = Grundy ^ usedX[i].second;
  for (int i = 0; i < (int)usedY.size(); ++i) Grundy = Grundy ^ usedY[i].second;
  if (Grundy == 0) {
    puts("SECOND");
    return 0;
  }
  puts("FIRST");
  if ((int)usedX.size() < n - 1) {
    if (usedX.empty()) {
      usedX.push_back(make_pair(1, m));
    } else
      for (int i = 1; i <= n - 1; ++i)
        if (usedX[i - 1].first != i) {
          usedX.push_back(make_pair(i, m));
          break;
        }
  }
  for (int i = 0; i < (int)usedX.size(); ++i)
    if ((Grundy ^ usedX[i].second) <= usedX[i].second) {
      int target = usedX[i].second - (Grundy ^ usedX[i].second);
      int l = 0, r = m;
      while (l < r) {
        int mid = (l + r) / 2;
        int d = findX(usedX[i].first, mid);
        if (d == target) {
          l = r = mid;
          break;
        }
        if (d < target) {
          l = mid + 1;
        }
        if (d > target) {
          r = mid - 1;
        }
      }
      printf("%d 0 %d %d\n", usedX[i].first, usedX[i].first, l);
      return 0;
    }
  if ((int)usedY.size() < m - 1) {
    if (usedY.empty()) {
      usedY.push_back(make_pair(1, n));
    } else
      for (int i = 1; i <= m - 1; ++i)
        if (usedY[i - 1].first != i) {
          usedY.push_back(make_pair(i, n));
          break;
        }
  }
  for (int i = 0; i < (int)usedY.size(); ++i)
    if ((Grundy ^ usedY[i].second) <= usedY[i].second) {
      int target = usedY[i].second - (Grundy ^ usedY[i].second);
      int l = 0, r = n;
      while (l < r) {
        int mid = (l + r) / 2;
        int d = findY(usedY[i].first, mid);
        if (d == target) {
          l = r = mid;
          break;
        }
        if (d < target) {
          l = mid + 1;
        }
        if (d > target) {
          r = mid - 1;
        }
      }
      printf("0 %d %d %d\n", usedY[i].first, l, usedY[i].first);
      return 0;
    }
  return 0;
}
