#include <bits/stdc++.h>
using namespace std;
int neigh[2][2] = {{0, 1}, {1, 0}};
char a[100][100];
short d[40][1 << 20][2];
int n;
int solve(int xx, int bit, int op) {
  int i, j, k, ans, bit1, tmp, x, y;
  vector<pair<int, int> > aa;
  if (xx == n + n - 2) {
    return 0;
  }
  if (d[xx][bit][op] != 20000) return d[xx][bit][op];
  aa.clear();
  for (i = 0; i < n; i++)
    if (((1 << i) & bit) != 0) {
      aa.push_back(make_pair(i, xx - i));
    }
  if (op == 0)
    ans = -20000;
  else
    ans = 20000;
  for (i = 0; i < 26; i++) {
    bit1 = 0;
    for (j = 0; j < aa.size(); j++)
      for (k = 0; k < 2; k++) {
        x = aa[j].first + neigh[k][0];
        y = aa[j].second + neigh[k][1];
        if ((x >= 0) && (x < n) && (y >= 0) && (y < n) &&
            (a[x][y] == 'a' + i)) {
          bit1 |= (1 << x);
        }
      }
    if (bit1 == 0) continue;
    tmp = solve(xx + 1, bit1, 1 - op);
    if (i == 0)
      tmp++;
    else if (i == 1)
      tmp--;
    if (op == 0) {
      if (tmp > ans) ans = tmp;
    } else {
      if (tmp < ans) ans = tmp;
    }
  }
  d[xx][bit][op] = ans;
  return ans;
}
int main() {
  int i, j, k, tmp;
  scanf("%d", &n);
  for (i = 0; i < n; i++) scanf("%s", a[i]);
  for (i = 0; i < n + n; i++)
    for (j = 0; j < (1 << n); j++)
      for (k = 0; k < 2; k++) d[i][j][k] = 20000;
  tmp = solve(0, 1, 1);
  if (a[0][0] == 'a')
    tmp++;
  else if (a[0][0] == 'b')
    tmp--;
  if (tmp == 0)
    printf("DRAW\n");
  else if (tmp > 0)
    printf("FIRST\n");
  else
    printf("SECOND\n");
}
