剰余ゲーム

ある数 s0s_0 と、2 つの数列 a1,a2,...,ana_1, a_2, ..., a_n、b1,b2,...,bnb_1, b_2, ..., b_n が与えられたとき、できるだけ少ない手数で s0s_0 から 0 に到達するのを目指すゲームを考えてみましょう。各ステップでは、インデックス i をひとつ選び、現在の数 sjs_j に次の操作を行うことができます:

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

この操作によって次の数に移ります。目標は、s0s_0 から 0 になるまでに必要な操作の最小回数を求めることです。

入力

入力の最初の行には、3 つの整数 n、m、そして s0s_0 が与えられます (0 ≤ n ≤ 10, 0 ≤ m ≤ 100000, かつ 0 < s0s_0 < m)。

続く n 行には、それぞれ ai,bia_i, b_i のペア (0 ≤ aia_i、bib_i ≤ 10^9) が与えられます。

出力

s0s_0 から 0 に到達するのに必要な操作の最小回数を出力してください。もし 0 にできない場合は、Impossible と出力してください。

例

Input

Output

2 5 1
3 1
2 1

2

Constraints

Time limit: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB