ll@a,@b,@c,@d,@n,e; map,ll>h; if(e=abs(a*d-b*c)){ rep(n){ ll@x,@y; h[{(d*x-c*y)%%e,(a*y-b*x)%%e}]=0; } }else{ (a,b)/=(a+b)/gcd(a+b,c+d); rep(n){ ll@x,@y; h[{(x+y)%(a+b),a*y-b*x}]=0; } } wt(n=h.size());