#include <bits/stdc++.h>
using namespace std;
char S[20][20];
int dp[2][((1 << 20) + 1)];
int dr[] = {1, 0};
int dc[] = {0, 1};
int N;
int size_row(int r) {
  if (r <= (N - 1))
    return r + 1;
  else
    return 2 * N - 2 - r + 1;
}
int row(int r, int x) {
  if (r <= (N - 1))
    return r - x;
  else
    return (N - 1) - x;
}
int col(int r, int x) {
  if (r <= (N - 1))
    return x;
  else
    return x + r - (N - 1);
}
int pos(int i, int j) {
  return j + min(0, N - 1 - (i + j));
  int r = (i + j);
  if (r <= N - 1)
    return j;
  else
    return j + (N - 1) - r;
}
int bits[(2 * 20)][300];
int nbrs[(2 * 20)][((1 << 20) + 1)];
int main() {
  cin >> N;
  for (int i = 0; i < (N); ++i) scanf("%s", S[i]);
  for (int r = 0; r < (2 * N - 1); ++r) {
    int M = size_row(r);
    for (int x = 0; x < (M); ++x) {
      int i = row(r, x);
      int j = col(r, x);
      assert(i < N && j < N && i >= 0 && j >= 0);
      bits[r][(int)S[i][j]] |= (1 << x);
    }
    int maxS = (1 << M);
    int i, j, i2, j2;
    for (int s = 0; s < (maxS); ++s) {
      for (int x = 0; x < (M); ++x) {
        if (!(s & (1 << x))) continue;
        i = row(r, x), j = col(r, x);
        for (int mv = 0; mv < (2); ++mv) {
          i2 = i + dr[mv];
          j2 = j + dc[mv];
          if (i2 < 0 || j2 < 0 || i2 >= N || j2 >= N) continue;
          nbrs[r][s] |= (1 << (pos(i2, j2)));
        }
      }
    }
  }
  int prev = 0, next = 1;
  for (int s = 0; s < (((1 << 20) + 1)); ++s) dp[prev][s] = 10000;
  dp[prev][1] = 0;
  for (int r = ((2 * N - 3)); r >= (0); --r) {
    int p = r % 2;
    int M = size_row(r);
    int maxS = (1 << M);
    for (int s = 0; s < (maxS); ++s) {
      if (p == 1)
        dp[next][s] = -10000;
      else
        dp[next][s] = 10000;
    }
    int news;
    for (int s = 0; s < (maxS); ++s) {
      for (int chr = ('a'); chr <= ('z'); ++chr) {
        news = nbrs[r][s] & bits[r + 1][chr];
        if (!news) continue;
        if (dp[prev][news] == 10000 || dp[prev][news] == -10000) continue;
        int result = dp[prev][news] + ((int)(chr == 'a') - (int)(chr == 'b'));
        if (p == 1)
          dp[next][s] = max(dp[next][s], result);
        else if (p == 0)
          dp[next][s] = min(dp[next][s], result);
        else
          assert(false);
      }
    }
    swap(next, prev);
  }
  int ans = dp[prev][1] + ((int)(S[0][0] == 'a')) - ((int)(S[0][0] == 'b'));
  printf("%s\n", (ans == 0 ? "DRAW" : ans > 0 ? "FIRST" : "SECOND"));
}
