\(10^{16}\) 個の都市があり、都市 \(1,2,\dots,10^{16}\) と番号が付けられています。
相異なる都市 \(i,j\) について、都市 \(i,j\) の間には \(\operatorname{lcm}(i,j)=A\cdot\gcd(i,j)+B\) のとき、またそのときに限り双方向に移動可能な道があります。
\(Q\) 個のクエリに答えてください。
\(i\) 番目のクエリでは都市の番号 \(x_i\) が与えられるので、都市 \(x_i\) から \(0\) 本以上の道を通ることで到達可能な都市すべての番号の総 (ビット単位) XOR を出力してください。
\(1\) 行目に整数 \(A,B\) がこの順に空白区切りで与えられます。 (\(1\leq A,B \leq 10^8\))
\(2\) 行目に整数 \(Q\) が与えられます。 (\(1\leq Q\leq 10^5\))
続く \(Q\) 行のうち \(i\) 行目に、 \(i\) 番目のクエリでの \(x_i\) が整数として与えられます。 ( \(1\leq x_i\leq 10^{16}\) )
\(Q\) 行出力してください。
\(i\ (1\leq i\leq Q)\) 行目には \(i\) 番目のクエリに対する答えを出力してください。
3 2842026728
28 26 54 108
81781525 39459251053907475616090625029806730076217696038011341614502367555040341613851468112151358558435129081513506101126478601534519491287293575
53908389 6160906250298067 3007621769603801 9491260218029 2151369618045 4034161385146811 2151369618045 332851610359999 112647860153451 9491260218029
\(1\) つ目のサンプルについて、都市 \(i,j\) 間に道があることは \(\operatorname{lcm}(i,j)=3\cdot\gcd(i,j)+28\) であることと同値です。
非負整数 \(x,y\) のビット単位 XOR \(x \oplus y\) は以下のように定義されます。
例えば、\(3 \oplus 5 = 6\) となります(二進表記すると \(011 \oplus 101 = 110\) )。