#include <bits/stdc++.h>
using namespace std;
const int N = 20;
const int M = N + 7;
const int MOD = 1e9 + 7;
const long long INF = 1e16 + 17;
const int K = 26;
int c[M][M];
int dp[2][1 << N];
int nxMask[K];
bool p[K];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("\n");
    for (int j = 1; j <= n; ++j) {
      char x;
      scanf("%c", &x);
      c[i][j] = x - 'a';
    }
  }
  dp[1][1] = (c[n][n] == 0) - (c[n][n] == 1);
  for (int diag = n + n - 2; diag >= 1; --diag) {
    int m = n - abs(n - diag);
    int id = diag % 2;
    int par = id ^ 1;
    for (int mask = 1; mask < (1 << m); ++mask) {
      int cnt = 0;
      bool flag = true;
      memset(p, false, sizeof p);
      int last = -1;
      for (int i = 0; i < m; ++i) {
        if (mask & (1 << i)) {
          int x = min(diag, n) - i;
          int y = diag - x + 1;
          if (last != -1 && last != c[x][y]) {
            flag = false;
            break;
          }
          last = c[x][y];
          p[x] = 1;
        }
      }
      if (!flag) continue;
      memset(nxMask, 0, sizeof nxMask);
      int x = min(diag, n);
      int y = diag - x + 2;
      if (x + 1 <= n && y - 1 >= 1) {
        ++x;
        --y;
      }
      int k = 0;
      while (x >= 1 && y <= n) {
        if (p[x] || p[x - 1]) {
          nxMask[c[x][y]] += 1 << k;
        }
        --x;
        ++y;
        ++k;
      }
      dp[id][mask] = MOD;
      for (int k = 0; k < K; ++k) {
        if (nxMask[k]) {
          dp[id][mask] = min(dp[id][mask], -dp[par][nxMask[k]]);
        }
      }
      int curVal = (last == 0) - (last == 1);
      dp[id][mask] += (id ? curVal : -curVal);
    }
  }
  if (dp[1][1] > 0) {
    printf("FIRST\n");
  } else if (dp[1][1] < 0) {
    printf("SECOND\n");
  } else {
    printf("DRAW\n");
  }
  return 0;
}
