import java.util.ArrayList;
import java.util.Arrays;

import java.util.List;

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

public class Check implements Checker {

	@Override
	public Outcome test(InStream inf, InStream ouf, InStream ans) {
		int n = inf.nextInt();
		long[] a = new long[n];
		int[] b = new int[n];
		for (int i = 0; i < n; i++)
			a[i] = inf.nextInt();
		for (int i = 0; i < n; i++)
			b[i] = inf.nextInt();
		long jans = ans.nextLong();
		long cans = ouf.nextLong();
		int m = ouf.nextInt();
		if (m > n || m < 1) {
			return new Outcome(Type.WA, "Wrong amount of index");
		}
		int[] an = new int[m];
		for (int i = 0; i < m; i++) {
			an[i] = ouf.nextInt();
			if (an[i] < 1 || an[i] > n) {
				return new Outcome(Type.WA, "Wrong index");
			}
			if (i > 0 && an[i] <= an[i - 1])
			  return new Outcome(Type.WA, "Wa");
		}
		long sum = 0;
		int pt = -1;
		for (int i = 0; i < m; i++) {
			int ind = an[i] - 1;
			if (pt >= b[ind])
				return new Outcome(Type.WA, "Incorrect order");
			sum += a[ind];
			pt = b[ind];
		}
		if (sum != cans) {
			return new Outcome(Type.WA, "Incorrect answer");
		}
		if (cans < jans) {
			return new Outcome(Type.WA, "Jury has better answer");
		}
		if (cans == jans) {
			return new Outcome(Type.OK, "Jury has same answer");
		}
		return new Outcome(Type.FAIL, "Contestant's answer is better");
	}
}
