// Задача "Игра <<Делимость>>"
// Шестая Интернет-олимпиада сезона 2009-2010, усложненный уровень
// Автор задачи: Сергей Поромов, poromov@rain.ifmo.ru
// Автор решения: Сергей Мельников, melnikov@rain.ifmo.ru

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.StringTokenizer;

public class divisigame_sm {
	static class State {
		int A, B, step;
		int[] cnt;

		public State(int a, int b, int step, int[] cnt) {
			A = a;
			B = b;
			this.step = step;
			this.cnt = cnt.clone();
		}

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + A;
			result = prime * result + B;
			result = prime * result + Arrays.hashCode(cnt);
			result = prime * result + step;
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			State other = (State) obj;
			return A == other.A && B == other.B && Arrays.equals(cnt, other.cnt) && step == other.step;
		}

	}

	HashMap<State, Integer> hm;

	int play(int A, int B, int step, int[] cnt) {
		// System.err.println(A + " " + B + " " + step + " " + Arrays.toString(cnt));
		if (cnt[0] == 0 && cnt[1] == 0 && cnt[2] == 0) {
			if (A % 3 == 0 & B % 3 != 0)
				return 1;
			if (A % 3 != 0 & B % 3 == 0)
				return -1;
			return 0;
		}
		State s = new State(A, B, step, cnt);
		if (hm.containsKey(s)) {
			return hm.get(s);
		}
		if (step == 0) {
			int res = -2;
			for (int i = 0; i < 3; i++) {
				if (cnt[i] > 0) {
					cnt[i]--;
					res = Math.max(res, play((A + i) % 3, B, 1 - step, cnt));
					cnt[i]++;
				}
			}
			hm.put(s, res);
			return res;
		} else if (step == 1) {
			int res = 2;
			for (int i = 0; i < 3; i++) {
				if (cnt[i] > 0) {
					cnt[i]--;
					res = Math.min(res, play(A, (B + i) % 3, 1 - step, cnt));
					cnt[i]++;
				}
			}
			hm.put(s, res);
			return res;
		} else {
			throw new AssertionError();
		}

	}

	void solve() {
		hm = new HashMap<State, Integer>();
		int n = nextInt();
		assert 1 <= n && n <= 50;
		int[] a = new int[3];
		for (int i = 0; i < n; i++) {
			int x = nextInt();
			assert Math.abs(x) <= 1000;
			a[((x % 3) + 3) % 3]++;
		}
		int res = play(0, 0, 0, a);
		if (res == 1) {
			out.println("FIRST");
		} else if (res == -1) {
			out.println("SECOND");
		} else if (res == 0) {
			out.println("DRAW");
		}
	}

	BufferedReader br;
	StringTokenizer st;
	PrintWriter out;

	public void run() {
		try {
			String filename = "divisigame";
			br = new BufferedReader(new FileReader(filename + ".in"));
			out = new PrintWriter(filename + ".out");
			solve();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}

	String nextToken() {
		try {
			while (st == null || !st.hasMoreTokens()) {
				st = new StringTokenizer(br.readLine());
			}
			return st.nextToken();
		} catch (IOException e) {
			throw new RuntimeException();
		}
	}

	int nextInt() {
		return Integer.parseInt(nextToken());
	}

	long nextLong() {
		return Integer.parseInt(nextToken());
	}

	public static void main(String[] args) {
		new divisigame_sm().run();
	}
}
