El Juego del Resto

Vamos a jugar un juego. Dado un número inicial s0s_0 y dos secuencias a1,a2,...,ana_1, a_2, ..., a_n y b1,b2,...,bnb_1, b_2, ..., b_n, tu objetivo es llegar desde s0s_0 hasta 0 lo más rápido posible. En cada paso, puedes elegir un índice i y aplicar la siguiente operación al número actual:

sj+1=(sj⋅ai+bi)mod  ms_{j+1} = (s_j \cdot a_i + b_i) \mod m

Así obtendrás el siguiente número. Debes encontrar el número mínimo de operaciones necesarias para pasar de s0s_0 a 0.

Entrada

La primera línea de la entrada contiene 3 enteros n, m y s0s_0 (0 ≤ n ≤ 10, 0 ≤ m ≤ 100 000, y 0 < s0s_0 < m).

Las siguientes n líneas contienen un par de enteros ai,bia_i, b_i (0 ≤ aia_i, bib_i ≤ 10910^9).

Salida

El programa debe imprimir el número mínimo de operaciones para llegar desde s0s_0 a 0. Si resulta imposible llegar a 0, el programa debe mostrar Impossible.

Ejemplos

Entrada

Salida

2 5 1
3 1
2 1

2

Constraints

Time limit: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB