using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (p, r) = (c[0], c[1]); var t = NN; var ans = new long[t][]; var ran = new Random(); var z = 0; while (true) { z = ran.Next(p); if (Exp(z, (p - 1) / 2, p) == p - 1) break; } var q = p - 1; var s = 0; while (q % 2 == 0) { q >>= 1; ++s; } for (var u = 0; u < t; ++u) { c = NList; ans[u] = Calc(p, r, c[0], c[1], c[2], z, q, s); } WriteLine(string.Join("\n", ans.Select(ai => string.Join(" ", ai)))); } static long[] Calc(int p, int r, int a, int b, int c, int z, int q, int s) { // ax^2+bx+c=0 (mod p) の解 // x = (-b +- √(b^2-4ac)) / 2a var rt = ((long)b * b % p - 4L * a * c % p + p) % p; var pa = Exp(2 * a, p - 2, p); var sqrt = Sqrt((int)rt, p, z, q, s); if (sqrt == 0) return [(p - b) * pa % p]; if (sqrt == -1) return [-1L]; var c1 = (p - b + p - sqrt) % p * pa % p; var c2 = (p - b + sqrt) % p * pa % p; if (c1 == c2) return [c1]; if (c1 < c2) return [c1, c2]; return [c2, c1]; } // mod p での平方根を求める // -1の場合は解なし、正の数の場合は -x も平方根になる static int Sqrt(int a, int p, int z, int q, int s) { var leg = Exp(a, (p - 1) / 2, p); if (leg == 0) return 0; if (leg > 1) return -1; if (p % 4 == 3) return (int)Exp(a, (p + 1) / 4, p); // p=4k+1のとき:Tonelli-Shanksアルゴリズムで求める var m = s; var c = Exp(z, q, p); var t = Exp(a, q, p); var r = Exp(a, (q + 1) / 2, p); while (true) { if (t == 0) return 0; if (t == 1) return (int)r; var ti = 1L; for (var i = 1; i < m; ++i) { ti = ti * t % p * t % p; if (ti == 1) { var m2 = Exp(2, m - i - 1, p - 1); var b = Exp(c, m2, p); m = i; c = b * b % p; t = t * c % p; r = r * b % p; break; } } } } static long Exp(long n, long p, int mod) { long _n = n % mod; var _p = p; var result = 1L; if ((_p & 1) == 1) result *= _n; while (_p > 0) { _n = _n * _n % mod; _p >>= 1; if ((_p & 1) == 1) result = result * _n % mod; } return result; } }