#include <bits/stdc++.h>
using namespace std;
const int NS = 20;
const int MS = 40;
const int AL = 26;
const int INF = 1 << 30;
int n;
int p[MS][AL];
char s[NS][NS], c[MS][NS];
int dp[MS][1 << NS];
bool vis[MS][1 << NS];
int judge(char ch) {
  if (ch == 'a') return 1;
  if (ch == 'b') return -1;
  return 0;
}
void print2(int x) {
  for (; x; x >>= 1) printf("%d", x & 1);
  puts("");
}
int dfs(int dep, int st) {
  if (vis[dep][st]) return dp[dep][st];
  vis[dep][st] = 1;
  int next = st, ret, w = 0;
  if (dep & 1)
    ret = -INF;
  else
    ret = INF;
  if (dep < n - 1)
    next |= (st << 1);
  else
    next |= (st >> 1);
  for (int i = 0; i < AL; i++)
    if (next & p[dep + 1][i]) {
      int tmp = dfs(dep + 1, next & p[dep + 1][i]);
      if (dep & 1)
        ret = max(ret, tmp);
      else
        ret = min(ret, tmp);
    }
  for (; (st & (1 << w)) == 0; w++)
    ;
  return dp[dep][st] = ret + judge(c[dep][w]);
}
int main() {
  while (~scanf("%d", &n)) {
    memset(p, 0, sizeof(p));
    memset(vis, 0, sizeof(vis));
    int x, y;
    for (int i = 0; i < n; i++) scanf("%s", s[i]);
    for (int j, i = 0; i < n + n - 1; i++) {
      if (i < n)
        x = i, y = 0;
      else
        x = n - 1, y = i - n + 1;
      for (j = 0; x >= 0 && y < n; x--, y++, j++)
        c[i][j] = s[x][y], p[i][c[i][j] - 'a'] |= 1 << j;
    }
    vis[n + n - 2][1] = 1;
    dp[n + n - 2][1] = judge(s[n - 1][n - 1]);
    int ans = dfs(0, 1);
    if (ans == 0) printf("DRAW\n");
    if (ans > 0) printf("FIRST\n");
    if (ans < 0) printf("SECOND\n");
  }
  return 0;
}
