#include <bits/stdc++.h>
using namespace std;
namespace mempool {
char pool[300000000];
int ptr = 0;
char *allocate(int size) {
  char *ret = &pool[ptr];
  ptr += size;
  return ret;
}
}  // namespace mempool
char *dp[41], g[30][30];
int n;
int solve(int level, int state, int lead) {
  if (level == n * 2 - 1) {
    if (lead < 0) return 3;
    if (lead == 0) return 2;
    if (lead > 0) return 1;
  }
  if (dp[level][state * 82 + lead + 40] != 0)
    return dp[level][state * 82 + lead + 40];
  int ret = 1;
  int len;
  if (level >= n)
    len = n * 2 - level;
  else
    len = level;
  int d1, d2;
  if (level >= n)
    d1 = 0;
  else
    d1 = 1;
  if (level >= n)
    d2 = -1;
  else
    d2 = 0;
  int tt = 0;
  int next[26];
  memset(next, 0, sizeof next);
  for (int i = (1); i <= (n); i++) {
    int j = level + 1 - i;
    if (j < 1 || j > n) continue;
    tt++;
    if (!(state & (1 << (tt - 1)))) continue;
    if (i + 1 <= n) next[g[i + 1][j] - 'a'] |= (1 << (tt + d1 - 1));
    if (j + 1 <= n) next[g[i][j + 1] - 'a'] |= (1 << (tt + d2 - 1));
  }
  for (int i = (0); i <= (25); i++) {
    int del = 0;
    if (i == 0) del = 1;
    if (i == 1) del = -1;
    if (next[i]) ret = max(ret, 4 - solve(level + 1, next[i], lead + del));
  }
  dp[level][state * 82 + lead + 40] = ret;
  return ret;
}
void lemon() {
  scanf("%d", &n);
  for (int i = (1); i <= (n); i++) scanf("%s", g[i] + 1);
  for (int i = (1); i <= (n); i++) dp[i] = mempool::allocate((1 << i) * 82);
  for (int i = (n + 1); i <= (n * 2 - 1); i++)
    dp[i] = mempool::allocate((1 << (n * 2 - i)) * 82);
  int del = 0;
  if (g[1][1] == 'a') del = 1;
  if (g[1][1] == 'b') del = -1;
  int t = solve(1, 1, del);
  if (t == 3) printf("SECOND\n");
  if (t == 2) printf("DRAW\n");
  if (t == 1) printf("FIRST\n");
}
int main() {
  ios::sync_with_stdio(true);
  lemon();
  return 0;
}
