#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:66777216")
using namespace std;
const int INF = 100000;
const int N = 22;
char st[N][N];
int n, dp[2 * N][1 << 20];
bool mark[2 * N][1 << 20];
int cnt, x[N], y[N];
int minimize(int d, int m);
int maximize(int d, int m) {
  if (d == 2 * n - 2) return 0;
  if (mark[d][m]) return dp[d][m];
  int &cur = dp[d][m];
  cur = -INF;
  mark[d][m] = true;
  cnt = 0;
  int neig = 0;
  for (int j = 0; j < n; ++j) {
    if ((m >> j) & 1) {
      x[cnt] = j;
      y[cnt] = d - j;
      int yy = d + 1 - j;
      if (yy >= 0 && yy < n) neig |= (1 << j);
      yy = d - j;
      if (j != n - 1 && yy >= 0 && yy < n) neig |= (1 << (j + 1));
      ++cnt;
    }
  }
  int mask[26];
  memset(mask, 0, sizeof mask);
  for (int x = 0; x <= d + 1; ++x) {
    if (x >= n) break;
    int y = d + 1 - x;
    if (y < 0 || y >= n) continue;
    mask[st[x][y] - 'a'] |= (1 << x);
  }
  for (int c = 0; c < 26; ++c) {
    int to = (neig & mask[c]);
    if (!to) continue;
    if (c == 0)
      cur = max(cur, minimize(d + 1, to) + 1);
    else if (c == 1)
      cur = max(cur, minimize(d + 1, to) - 1);
    else
      cur = max(cur, minimize(d + 1, to));
  }
  return cur;
}
int minimize(int d, int m) {
  if (d == 2 * n - 2) return 0;
  if (mark[d][m]) return dp[d][m];
  int &cur = dp[d][m];
  cur = INF;
  mark[d][m] = true;
  cnt = 0;
  int neig = 0;
  for (int j = 0; j < n; ++j) {
    if ((m >> j) & 1) {
      x[cnt] = j;
      y[cnt] = d - j;
      int yy = d + 1 - j;
      if (yy >= 0 && yy < n) neig |= (1 << j);
      yy = d - j;
      if (j != n - 1 && yy >= 0 && yy < n) neig |= (1 << (j + 1));
      ++cnt;
    }
  }
  int mask[26];
  memset(mask, 0, sizeof mask);
  for (int x = 0; x <= d + 1; ++x) {
    if (x >= n) break;
    int y = d + 1 - x;
    if (y < 0 || y >= n) continue;
    mask[st[x][y] - 'a'] |= (1 << x);
  }
  for (int c = 0; c < 26; ++c) {
    int to = (neig & mask[c]);
    if (!to) continue;
    if (c == 0)
      cur = min(cur, maximize(d + 1, to) + 1);
    else if (c == 1)
      cur = min(cur, maximize(d + 1, to) - 1);
    else
      cur = min(cur, maximize(d + 1, to));
  }
  return cur;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; ++i) cin >> st[i];
  int coef = 0;
  if (st[0][0] == 'a') coef = 1;
  if (st[0][0] == 'b') coef = -1;
  int res = minimize(0, 1) + coef;
  if (res > 0)
    puts("FIRST");
  else if (res == 0)
    puts("DRAW");
  else
    puts("SECOND");
  return 0;
}
