#include <bits/stdc++.h>
using namespace std;
int n, same[41][31], dp[41][1000010];
char num[41][41];
bool flag[41][1000010];
void Init() {
  scanf("%d\n", &n);
  for (int i = 0; i < n; i++) scanf("%s\n", num[i]);
}
void prepare() {
  for (int i = 0; i < (n << 1) - 1; i++)
    for (int j = 0; j < 26; j++) {
      int ll = max(0, i - n + 1), rr = min(i, n - 1);
      for (int k = ll; k <= rr; k++)
        if (j + 'a' == num[k][i - k]) same[i][j] |= (1 << k);
    }
}
int min_max(int d, int s, int c) {
  if (d == 2 * n - 2) return c == 0 ? 1 : c == 1 ? -1 : 0;
  if (!flag[d][s]) {
    int ss = s, cc;
    flag[d][s] = 1;
    for (int i = 0; i < n; i++)
      if (s & (1 << i)) ss |= (1 << (i + 1));
    dp[d][s] = (d & 1) ? -0x7fffffff : 0x7fffffff;
    for (int i = 0; i < 26; i++) {
      int nxt = (ss & same[d + 1][i]);
      if (nxt) {
        if (d & 1)
          dp[d][s] = max(dp[d][s], min_max(d + 1, nxt, i));
        else
          dp[d][s] = min(dp[d][s], min_max(d + 1, nxt, i));
      }
    }
    dp[d][s] += (c == 0 ? 1 : c == 1 ? -1 : 0);
  }
  return dp[d][s];
}
void solve() {
  prepare();
  int x = min_max(0, 1, num[0][0] - 'a');
  printf("%s\n", x > 0 ? "FIRST" : x < 0 ? "SECOND" : "DRAW");
}
int main() {
  Init();
  solve();
  return 0;
}
