#include <bits/stdc++.h>
using namespace std;
int const MID = 30;
int const INF = 1 << 30;
int n;
char bord[25][100];
int dp[50][1100000];
char getChar(int dig, int mask) {
  int kel = 0;
  while ((mask & 1) == 0) {
    mask = mask >> 1;
    kel++;
  }
  if (dig - kel > 0)
    return bord[1 + kel][MID + dig - kel];
  else
    return ' ';
}
int fun(int dig, int mask) {
  if (dp[dig][mask] == INF) {
    int ats = 0;
    bool call = false;
    int minmax = dig & 1 ? 10000 : -10000;
    int nextMask;
    for (char m = 'a'; m <= 'z'; m++) {
      nextMask = 0;
      for (int i = 0; i < n; i++) {
        int now = 1 << i;
        if (mask & now) {
          if (getChar(dig + 1, now) == m) nextMask = nextMask | now;
          if (getChar(dig + 1, now << 1) == m) nextMask = nextMask | (now << 1);
        }
      }
      int ans;
      if (nextMask != 0) {
        call = true;
        ans = fun(dig + 1, nextMask);
        if ((dig & 1) == 1) {
          minmax = min(minmax, ans);
        } else {
          minmax = max(minmax, ans);
        }
      }
    }
    char nowChar = getChar(dig, mask);
    if (nowChar == 'a')
      ats++;
    else if (nowChar == 'b')
      ats--;
    if (call)
      dp[dig][mask] = minmax + ats;
    else
      dp[dig][mask] = ats;
  }
  return dp[dig][mask];
}
int main() {
  for (int i = 0; i < 50; i++)
    for (int j = 0; j < 1100000; j++) dp[i][j] = INF;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    for (int j = MID + 1; j <= MID + n; j++) cin >> bord[i][j];
  }
  int ans = fun(1, 1);
  if (ans > 0)
    cout << "FIRST";
  else if (ans < 0)
    cout << "SECOND";
  else
    cout << "DRAW";
  return 0;
}
