#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 20;
char a[maxn][maxn];
int dp[40][1 << 20];
int pos[40][30];
bool vis[40][1 << 20];
int n;
void dfs(int i, int j) {
  if (vis[i][j]) return;
  vis[i][j] = 1;
  if (i == 2 * n - 2) {
    dp[i][j] = 0;
    return;
  }
  for (int k = 0; k < 26; k++) {
    int plus;
    if (k == 0)
      plus = 1;
    else if (k == 1)
      plus = -1;
    else
      plus = 0;
    int t = (j | (j << 1)) & pos[i + 1][k];
    if (!t) continue;
    dfs(i + 1, t);
    if (i & 1)
      dp[i][j] = max(dp[i][j], dp[i + 1][t] + plus);
    else
      dp[i][j] = min(dp[i][j], dp[i + 1][t] + plus);
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < 2 * n - 1; i++) {
    for (int x = 0; x < n; x++) {
      int y = i - x;
      if (y < 0 || y >= n) continue;
      pos[i][a[x][y] - 'a'] |= 1 << x;
    }
  }
  for (int i = 0; i <= 2 * n - 2; i++)
    for (int j = 0; j < (1 << n); j++)
      if (i & 1)
        dp[i][j] = -inf;
      else
        dp[i][j] = inf;
  dp[2 * n - 2][1 << (n - 1)] = 0;
  dfs(0, 1);
  if (a[0][0] == 'a')
    dp[0][1]++;
  else if (a[0][0] == 'b')
    dp[0][1]--;
  if (dp[0][1] > 0)
    cout << "FIRST\n";
  else if (dp[0][1] == 0)
    cout << "DRAW\n";
  else
    cout << "SECOND\n";
  return 0;
}
