最大公约数
题号:NC201841
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有三个人,,其中 共享了一个神秘的数字 ,已知
现在 说:“ 的值等于 ”。
不太信任 ,于是想向 确认一下 是否真的等于 虽然不想直接把 的值告诉 ,但是 允许 给出一个正整数 (注意 可以大于 ),然后 会回答
现在给出 ,你需要帮助 决定这样的 的取值,使得 一定可以通过 B 的回答来判断 A 有没有撒谎。如果这样的 y 有多个,你需要输出最小的那个。

输入描述:

输入第一行是一个整数 
对于每组数据,输入一行两个整数

输出描述:

对于每组数据,输出一行一个整数,表示答案。如果满足条件的 y 不存在,则输出 -1。
示例1

输入

复制
3
10 1
10 4
10 7

输出

复制
210
8
7

备注:

输入的k指的是A告诉C的值,只需要检验它对不对就行