#include <bits/stdc++.h>
using namespace std;
int n, enc[45][45], decx[45][45], decy[45][45];
char s[45][45], ss[45], len[45];
short int dp[42][(1 << 20) + 5];
short int dfs(int step, int S) {
  if (dp[step][S] != 999) return dp[step][S];
  if (step == n + n - 2) {
    return dp[step][S] =
               (s[n - 1][n - 1] == 'a' ? 1 : (s[n - 1][n - 1] == 'b' ? -1 : 0));
  }
  short int *val = &dp[step][S], curs = 0;
  if (step & 1) *val = -999;
  for (char c = 'a'; c <= 'z'; ++c) {
    int T = 0, x, y;
    for (int j = (0); j < (len[step]); j++)
      if (S & (1 << j)) {
        x = decx[step][j];
        y = decy[step][j];
        curs = (s[x][y] == 'a' ? 1 : (s[x][y] == 'b' ? -1 : 0));
        if (x + 1 < n && s[x + 1][y] == c) T |= (1 << enc[x + 1][y]);
        if (y + 1 < n && s[x][y + 1] == c) T |= (1 << enc[x][y + 1]);
      }
    if (!T) continue;
    if (step & 1)
      *val = max(*val, dfs(step + 1, T));
    else
      *val = min(*val, dfs(step + 1, T));
  }
  *val = *val + curs;
  return *val;
}
int main() {
  scanf("%d", &n);
  for (int i = (0); i < (n); i++) scanf("%s", s[i]);
  for (int i = (0); i < (42); i++)
    for (int j = (0); j < ((1 << n)); j++) dp[i][j] = 999;
  for (int i = (0); i < (n + n - 1); i++) {
    int x, y;
    if (i < n)
      x = i, y = 0;
    else
      x = n - 1, y = i - n + 1;
    len[i] = 0;
    while (x >= 0 && y < n) {
      decx[i][len[i]] = x;
      decy[i][len[i]] = y;
      enc[x][y] = len[i]++;
      --x, ++y;
    }
  }
  int ret = dfs(0, 1);
  if (!ret)
    puts("DRAW");
  else
    puts(ret > 0 ? "FIRST" : "SECOND");
  return 0;
}
