Le Jeu du Reste

Jouons à un jeu. Étant donné un nombre initial s0s_0 ainsi que deux séquences a1,a2,...,ana_1, a_2, ..., a_n et b1,b2,...,bnb_1, b_2, ..., b_n, l’objectif est de transformer s0s_0 en 0 le plus rapidement possible. À chaque étape, vous pouvez choisir un indice i et appliquer l’opération suivante au nombre courant :

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

De cette manière, vous obtiendrez le nombre suivant. Vous devez déterminer le nombre minimal d’opérations nécessaires pour passer de s0s_0 à 0.

Entrée

La première ligne de l’entrée contient 3 entiers n, m et s0s_0 (0 ≤ n ≤ 10, 0 ≤ m ≤ 100 000, et 0 < s0s_0 < m).

Les n lignes suivantes contiennent chacune une paire d’entiers ai,bia_i, b_i (0 ≤ aia_i, bib_i ≤ 10910^9).

Sortie

Le programme doit afficher le nombre minimal d’opérations pour passer de s0s_0 à 0. S’il est impossible d’atteindre la valeur 0, le programme doit afficher Impossible.

Exemples

Entrée

Sortie

2 5 1
3 1
2 1

2

Constraints

Time limit: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB