Удаление одного элемента 2

Дан список из n целых чисел. Требуется удалить один элемент так, чтобы произведение оставшейся последовательности по модулю m было равно p. Формально, если индекс удаляемого элемента равен r:

(a1⋅a2⋅...⋅ar−1⋅ar+1⋅...⋅an)mod  m=p(a_1 \cdot a_2 \cdot ... \cdot a_{r-1} \cdot a_{r+1} \cdot ... \cdot a_n) \mod m = p

Программа должна найти индекс такого числа или вывести Impossible, если подходящий элемент не существует.

Входные данные

В первой строке задаются 3 целых числа n (1 ≤ n ≤ 10510^5), m (1 ≤ m ≤ 10910^9) и p (0 ≤ s < m).

Во второй строке содержатся n целых чисел a1,a2,...,ana_1, a_2, ..., a_n, разделённые пробелами (0 ≤ aia_i ≤ 10910^9).

Выходные данные

Если такого элемента не существует, нужно вывести Impossible. В противном случае программа должна вывести индекс первого подходящего элемента в данном списке. Индексация начинается с 1.

Примеры

Входные данные

Выходные данные

3 8 5
5 0 9

2

3 8 5
5 10 7

Impossible

Пояснение

  1. 5 * 9 = 45 ⇒ 45 mod 8 = 5 ⇒ можно удалить элемент со значением 0, находящийся на позиции 2.

  2. Невозможно убрать какой-либо элемент так, чтобы произведение оставшихся чисел по модулю 8 стало равно 5.

Constraints

Time limit: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB