#include <bits/stdc++.h>
using namespace std;
const int N = 30;
int n;
int dp[40][1 << 20], f[N][N];
char g[N][N];
bool u[40][1 << 20];
int dfs(int c, int zt, int t) {
  if (c == n + n - 2) {
    if (g[n - 1][n - 1] == 'a') return 1;
    if (g[n - 1][n - 1] == 'b') return -1;
    return 0;
  }
  if (u[c][zt]) return dp[c][zt];
  u[c][zt] = true;
  int tmp = 0, rt, i, j;
  if (t > 0)
    rt = 100;
  else
    rt = -100;
  int d = c + 1;
  if (d > n) d = n - (d - n);
  for (i = 0; i < d; i++)
    if (zt & (1 << i)) {
      int x, y;
      if (c < n) {
        x = i;
        y = c - x;
      } else {
        x = n - 1 - i;
        y = c - x;
      }
      if (g[x][y] == 'a') tmp = 1;
      if (g[x][y] == 'b') tmp = -1;
      if (x + 1 < n) {
        int nt = 0;
        for (j = 0; j < d; j++)
          if (zt & (1 << j)) {
            int px, py;
            if (c < n) {
              px = j;
              py = c - px;
            } else {
              px = n - 1 - j;
              py = c - px;
            }
            if (px + 1 < n) {
              if (g[px + 1][py] == g[x + 1][y]) nt |= (1 << f[px + 1][py]);
            }
            if (py + 1 < n) {
              if (g[px][py + 1] == g[x + 1][y]) nt |= (1 << f[px][py + 1]);
            }
          }
        int tp = dfs(c + 1, nt, -t);
        if (t > 0)
          rt = ((rt) < (tp) ? (rt) : (tp));
        else
          rt = ((rt) > (tp) ? (rt) : (tp));
      }
      if (y + 1 < n) {
        int nt = 0;
        for (j = 0; j < d; j++)
          if (zt & (1 << j)) {
            int px, py;
            if (c < n) {
              px = j;
              py = c - px;
            } else {
              px = n - 1 - j;
              py = c - px;
            }
            if (px + 1 < n) {
              if (g[px + 1][py] == g[x][y + 1]) nt |= (1 << f[px + 1][py]);
            }
            if (py + 1 < n) {
              if (g[px][py + 1] == g[x][y + 1]) nt |= (1 << f[px][py + 1]);
            }
          }
        int tp = dfs(c + 1, nt, -t);
        if (t > 0)
          rt = ((rt) < (tp) ? (rt) : (tp));
        else
          rt = ((rt) > (tp) ? (rt) : (tp));
      }
    }
  dp[c][zt] = tmp + rt;
  return dp[c][zt];
}
int main() {
  int i, j;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      if (i + j < n)
        f[i][j] = i;
      else {
        f[i][j] = n - 1 - i;
      }
    }
  }
  for (i = 0; i < n; i++) scanf("%s", g[i]);
  int rt = dfs(0, 1, 1);
  if (rt > 0)
    puts("FIRST");
  else if (rt < 0)
    puts("SECOND");
  else
    puts("DRAW");
  return 0;
}
