#include <bits/stdc++.h>
using namespace std;
int n, i, j, a[20][20], x;
char f[20 * 2][1 << 20];
bool bo[20 * 2][1 << 20];
char c[20][20];
char dfs(int dep, int mask) {
  if (dep == 2 * n - 2) return a[n - 1][n - 1];
  if (bo[dep][mask]) return f[dep][mask];
  bo[dep][mask] = 1;
  int i, x, m, y, v;
  if (dep & 1)
    f[dep][mask] = -100;
  else
    f[dep][mask] = 100;
  for (i = 0; i < n; ++i)
    if ((mask >> i) & 1) break;
  v = a[i][dep - i];
  for (i = 'a'; i <= 'z'; ++i) {
    m = 0;
    for (x = 0; x < n; ++x)
      if ((mask >> x) & 1) {
        y = dep - x;
        if (x + 1 < n && c[x + 1][y] == i) m |= 1 << (x + 1);
        if (y + 1 < n && c[x][y + 1] == i) m |= 1 << x;
      }
    if (m) {
      if (dep & 1)
        f[dep][mask] = max(f[dep][mask], char(dfs(dep + 1, m) + v));
      else
        f[dep][mask] = min(f[dep][mask], char(dfs(dep + 1, m) + v));
    }
  }
  return f[dep][mask];
}
int main() {
  scanf("%d", &n);
  for (i = 0; i < n; ++i) {
    scanf("%s", c[i]);
    for (j = 0; j < n; ++j)
      if (c[i][j] == 'a')
        a[i][j] = 1;
      else if (c[i][j] == 'b')
        a[i][j] = -1;
  }
  x = dfs(0, 1);
  puts(x == 0 ? "DRAW" : x > 0 ? "FIRST" : "SECOND");
}
