import java.util.*; public class pp { /* static ArrayList allPrimes; private static void createPrimes() { allPrimes = new ArrayList(); boolean[] temp = new boolean[46350]; int top = 220; temp[0] = true; temp[1] = true; for (int i = 2; i < top; i ++) { if (temp[i]) { continue; } int j = i * 2; do { temp[j] = true; j += i; } while (j < temp.length); } for (int i = 0; i < temp.length; i++) { if (!temp[i]) { allPrimes.add(i); } } }*/ static boolean lzeRozlozit(int cislo, int[] myPrimes) { for (int prime : myPrimes) { while (cislo % prime == 0) { cislo /= prime; } } if (cislo == 1) return true; return false; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String line; //createPrimes(); while (sc.hasNextLine()) { int primeCount = sc.nextInt(); if (primeCount == 0) return; sc.nextLine(); int[] myPrimes = new int[primeCount]; for (int i = 0; i < primeCount; i++) { myPrimes[i] = sc.nextInt(); } sc.nextLine(); int a= sc.nextInt(); int b= sc.nextInt(); sc.nextLine(); TreeSet set = new TreeSet(); int nejm = 0; for (int cislo = a; cislo <= b; cislo++) { if (!lzeRozlozit(cislo, myPrimes)) { continue; } nejm = cislo; /*break;*/ set.add(cislo); } //set.add(nejm); /* for (int i = 0; i < myPrimes.length; i++) { int number = nejm * myPrimes[i]; while (number <= b) { set.add(number); number *= myPrimes[i]; } }*/ /* for (int i = a; i <= b; i++) { boolean ok = true; for (int j = 0; j < allPrimes.size() && allPrimes.get(j) <= b; j++) { if (i % allPrimes.get(j) == 0) { if (Arrays.binarySearch(myPrimes, allPrimes.get(j)) < 0) { ok = false; break; } } } if (ok) { res.add(i); } }*/ Iterator it = set.iterator(); for (int i = 0; i < set.size(); i++) { System.out.print(it.next()); if (i != set.size() - 1) { System.out.print(","); } } if (set.size() == 0) System.out.print("none"); System.out.println(); } } }