#Lutece3393. 猜数游戏

猜数游戏

Description

你正在玩一个猜数游戏。每轮游戏给定 a,p,l,ra,p,l,r,你需要猜一个 [l,r][l,r] 区间内的正整数 xx,满足 xmodp=ax\bmod p=a。但是由于程序 bug,你不知道 a,pa,p 的值而只知道 l,rl,r 的值。

你不会 Pwn,所以这个游戏对你来说太难了。但是好在有一天有人托梦给你,你知道了存储 aapp 值的地址,进而你知道了每轮中这两个数的值。请根据现有信息进行这个猜数游戏。

Input

第一行一个整数 TT1T1041\le T\le 10^4),表示游戏轮数。

对于每轮游戏,一行四个整数 a,p,l,ra,p,l,r0a<p1018,1lr10180\le a<p\le 10^{18},1\le l\le r\le 10^{18}),表示现有信息。

Output

对于每轮游戏,如果不存在这样的 xx,输出一行 No,否则先输出一个字符串 Yes,再在同一行空一格后输出一个正整数 xxlxrl\le x\le r),表示你猜的数。输出任意一个满足条件的 xx 均可。

Samples

2
2 3 4 8
3 4 5 6
Yes 5
No

Resources

The 23rd UESTC Programming Contest Preliminary