#include <bits/stdc++.h>
using namespace std;
int n;
char T[25][25];
int V[25][25];
map<int, char> M[45];
char dp(int bit, int k) {
  if (k == 2 * n - 2) return 0;
  if (M[k].count(bit)) return M[k][bit];
  char &r = M[k][bit];
  vector<int> V(26);
  for (int i = (int)(0); i < (int)(n); ++i)
    if ((bit >> i) & 1) {
      int first = i, second = k - i;
      if (first != n - 1) {
        int nx = first + 1, ny = second;
        V[T[nx][ny]] |= (1 << nx);
      }
      if (second != n - 1) {
        int nx = first, ny = second + 1;
        V[T[nx][ny]] |= (1 << nx);
      }
    }
  if (k % 2 == 1) {
    r = -100;
    if (V[0]) r = max((int)r, 1 + dp(V[0], k + 1));
    if (V[1]) r = max((int)r, -1 + dp(V[1], k + 1));
    for (int i = (int)(2); i < (int)(26); ++i)
      if (V[i]) r = max(r, dp(V[i], k + 1));
  } else {
    r = 100;
    if (V[0]) r = min((int)r, 1 + dp(V[0], k + 1));
    if (V[1]) r = min((int)r, -1 + dp(V[1], k + 1));
    for (int i = (int)(2); i < (int)(26); ++i)
      if (V[i]) r = min(r, dp(V[i], k + 1));
  }
  return r;
}
int main() {
  scanf("%d", &n);
  for (int i = (int)(0); i < (int)(n); ++i) scanf("%s", T[i]);
  for (int i = (int)(0); i < (int)(n); ++i)
    for (int j = (int)(0); j < (int)(n); ++j) {
      if (T[i][j] == 'a')
        V[i][j] = 1;
      else if (T[i][j] == 'b')
        V[i][j] = -1;
      else
        V[i][j] = 0;
      T[i][j] -= 'a';
    }
  int t = dp(1, 0) + V[0][0];
  if (t > 0) printf("FIRST\n");
  if (t == 0) printf("DRAW\n");
  if (t < 0) printf("SECOND\n");
  return 0;
}
