#include <bits/stdc++.h>
using namespace std;
vector<int> e[40][26];
int n, pow2[25], dp[40][1 << 20];
char a[25][25];
int f(int x) {
  if (x == 0) return 1;
  if (x == 1) return -1;
  return 0;
}
int calc(int x, int y) {
  if (x == 2 * n - 2) return 0;
  if (dp[x][y] != -100) return dp[x][y];
  if (!(x & 1)) dp[x][y] = 100;
  for (int c = 0; c < 26; c++) {
    int t = 0;
    for (vector<int>::iterator p = e[x + 1][c].begin(); p != e[x + 1][c].end();
         p++)
      if ((y & pow2[*p]) || ((*p) > 0 && (y & pow2[(*p) - 1]))) t |= pow2[*p];
    if (!t) continue;
    if (x & 1)
      dp[x][y] = max(dp[x][y], f(c) + calc(x + 1, t));
    else
      dp[x][y] = min(dp[x][y], f(c) + calc(x + 1, t));
  }
  return dp[x][y];
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%s", a[i]);
  pow2[0] = 1;
  for (int i = 1; i <= n; i++) pow2[i] = pow2[i - 1] << 1;
  for (int i = 0; i < 2 * n; i++)
    for (int j = 0; j < pow2[n]; j++) dp[i][j] = -100;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) e[i + j][a[i][j] - 97].push_back(i);
  int ans = f(a[0][0] - 97) + calc(0, 1);
  if (ans > 0) puts("FIRST");
  if (ans < 0) puts("SECOND");
  if (!ans) puts("DRAW");
  return 0;
}
