import ru.ifmo.testlib.*;
import static ru.ifmo.testlib.Outcome.Type.*;

public class Check implements Checker {
	public static final int M = 3;

	@Override
	public Outcome test(InStream inf, InStream ouf, InStream ans) {
		int n = inf.nextInt();
		int[] a = new int[n];
		for (int i = 0; i < n; i++) {
			a[i] = inf.nextInt();
		}
		
		int jStart = ans.nextInt() - 1;
		int jEnd = ans.nextInt();
		
		int cStart = ouf.nextInt() - 1;
		int cEnd = ouf.nextInt();
		if (cStart < 0 || cStart >= n) {
			return new Outcome(WA, "Invalid start " + (cStart + 1));
		}
		if (cEnd <= cStart || cEnd > n) {
			return new Outcome(WA, "Invalid end " + cEnd);
		}
		
		int same = 1;
		for (int i = cStart + 1; i < cEnd; i++) {
			if (a[i] == a[i - 1]) {
				same++;
			} else {
				same = 1;
			}
			if (same == M) {
				return new Outcome(WA, M + " in a row in position " + (i - M + 2) + ".." + (i + 1));
			}
		}
		
		int cSize = cEnd - cStart;
		int jSize = jEnd - jStart;
		if (cSize < jSize) {
			return new Outcome(WA, "Interval is too small: " + cSize + " < " + jSize);
		}
		if (cSize > jSize) {
			return new Outcome(FAIL, "Better than jury: " + cSize + " > " + jSize);
		}
		return new Outcome(OK, "Correct interval of size " + cSize);
	}
}
