#include <bits/stdc++.h>
using namespace std;
const int INF = (int)1e9 + 7;
int main() {
  int n;
  cin >> n;
  vector<string> s(n);
  for (auto &si : s) cin >> si;
  int sz = (n - 1) * 2;
  vector<vector<int>> mask(n * 2, vector<int>(26));
  for (int diag = 0; diag <= sz; diag++)
    for (int c = 0; c < 26; c++) {
      for (int i = 0; i < n; i++) {
        if (s[i][diag - i] - 'a' == c) mask[diag][c] |= 1 << i;
      }
    }
  vector<vector<int>> dp(sz + 1, vector<int>(1 << n, INF));
  function<int(int, int, int, bool)> dfs = [&](int d, int i, int c,
                                               bool is_first) {
    if (dp[d][i] != INF) return dp[d][i];
    int add = 0;
    if (is_first) {
      if (c == 0) add++;
      if (c == 1) add--;
    } else {
      if (c == 0) add--;
      if (c == 1) add++;
    }
    if (d == sz) {
      return dp[d][i] = add;
    } else {
      int res = -INF;
      for (int nc = 0; nc < 26; nc++) {
        int ni = mask[d + 1][nc] & (i | i << 1);
        if (ni) res = max(res, add - dfs(d + 1, ni, nc, !is_first));
      }
      return dp[d][i] = res;
    }
  };
  int res = -dfs(0, 1 << 0, s[0][0] - 'a', false);
  if (res > 0) cout << "FIRST" << endl;
  if (res == 0) cout << "DRAW" << endl;
  if (res < 0) cout << "SECOND" << endl;
  return 0;
}
