#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
string v[21];
int mask[40][26];
int memo[40][1 << 20];
const int INF = 1 << 29;
int n;
int dfs(int len, int x, char c, bool A) {
  if (memo[len][x] != INF) return memo[len][x];
  int ans = 0;
  if (len < n * 2 - 2) {
    if (A) {
      ans = -INF;
      for (int i = 0; i < (26); i++) {
        int next = (x | (x << 1)) & mask[len + 1][i];
        if (!next) continue;
        ans = max(ans, dfs(len + 1, next, 'a' + i, !A));
      }
    } else {
      ans = INF;
      for (int i = 0; i < (26); i++) {
        int next = (x | (x << 1)) & mask[len + 1][i];
        if (!next) continue;
        ans = min(ans, dfs(len + 1, next, 'a' + i, !A));
      }
    }
  }
  if (c == 'a') ans++;
  if (c == 'b') ans--;
  return memo[len][x] = ans;
}
int main() {
  cin >> n;
  for (int i = 0; i < (n); i++) cin >> v[i];
  for (int i = 0; i < (40); i++)
    for (int j = 0; j < (1 << 20); j++) memo[i][j] = INF;
  for (int y = 0; y < (n * 2); y++)
    for (int x = 0; x < (n * 2); x++) {
      if (x < 0 || x >= n || y < 0 || y >= n) continue;
      mask[x + y][v[y][x] - 'a'] |= 1 << x;
    }
  int res = dfs(0, 1, v[0][0], false);
  if (res > 0)
    cout << "FIRST" << endl;
  else if (res < 0)
    cout << "SECOND" << endl;
  else
    cout << "DRAW" << endl;
  return 0;
}
