#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; ll powmod(ll a, ll k, ll mod){ ll ap=a, ans=1; while(k){ if(k&1){ ans*=ap; ans%=mod; } ap=ap*ap; ap%=mod; k>>=1; } return ans; } ll inv(ll a, ll mod){ return powmod(a, mod-2, mod); } ll modsqrt(int p, int a){ if(a==0) return 0; int q=p-1, s=0; while((q&1)==0){ q>>=1; s++; } int z=2; while(1){ if(powmod(z, (p-1)/2, p)==p-1) break; z++; } ll c=powmod(z, q, p); ll r=powmod(a, (q+1)/2, p), t=powmod(a, q, p); int m=s; while(t>1){ ll tp=t; int k=-1; for(int i=1; i>p>>r; int q; cin>>q; for(int i=0; i>a>>b>>c; ll ainv=inv(a, p); (b*=ainv)%=p; (c*=ainv)%=p; (b*=((p+1)/2))%=p; ll d=(b*b+p-c)%p; ll e=modsqrt(p, d); if(e==-1){ cout<<-1<x2) swap(x1, x2); cout<