#include <bits/stdc++.h>
using namespace std;
int n, dp[40][1 << 20];
char x[22][22];
int eval(int xx, int yy) {
  if (x[xx][yy] == 'a') return 1;
  if (x[xx][yy] == 'b') return -1;
  return 0;
}
int solve(int diag, int mask) {
  if (dp[diag][mask] != -1) return dp[diag][mask];
  if (diag == 2 * n - 1) return eval(n, n);
  int res = 0;
  int cntDiag = diag;
  if (diag >= n) cntDiag = 2 * n - diag;
  int newMask[26], retx, rety;
  memset(newMask, 0, sizeof(newMask));
  for (int i = 0; i < cntDiag; ++i)
    if (mask & (1 << i)) {
      int xx = i + 1;
      if (diag >= n) xx = diag - n + i + 1;
      int yy = diag - xx + 1;
      retx = xx;
      rety = yy;
      if (xx + 1 <= n)
        newMask[x[xx + 1][yy] - 'a'] |= (1 << (diag < n ? i + 1 : i));
      if (yy + 1 <= n)
        newMask[x[xx][yy + 1] - 'a'] |= (1 << (diag < n ? i : i - 1));
    }
  if (diag % 2)
    res = 1 << 30;
  else
    res = -(1 << 30);
  for (int i = 0; i < 26; ++i)
    if (newMask[i]) {
      if (diag % 2)
        res = min(res, solve(diag + 1, newMask[i]));
      else
        res = max(res, solve(diag + 1, newMask[i]));
    }
  res += eval(retx, rety);
  return dp[diag][mask] = res;
}
int main() {
  scanf("%d\n", &n);
  for (int i = 1; i <= n; ++i) gets(x[i] + 1);
  memset(dp, -1, sizeof(dp));
  int res = solve(1, 1);
  if (res > 0) printf("FIRST");
  if (res < 0) printf("SECOND");
  if (res == 0) printf("DRAW");
  return 0;
}
