Fizz Buzz 是一个常用于求职面试编程练习的派对游戏。在游戏中,有两个正整数 $a$ 和 $b$,游戏过程是从正整数开始向上计数,如果数字是 $a$ 的倍数,则将其替换为 Fizz;如果数字是 $b$ 的倍数,则将其替换为 Buzz;如果数字同时是 $a$ 和 $b$ 的倍数,则将其替换为 FizzBuzz。该游戏最常见的形式是 $a = 3$ 且 $b = 5$,但也允许其他参数。
你的任务是解决逆向问题:给定游戏过程的一部分记录(不一定从 1 开始),找出可能用于生成该记录的 $a$ 和 $b$ 的值。
图 I.1 展示了针对不同 $a$ 和 $b$ 值的示例序列。
图 I.1:Fizz Buzz 的示例序列。
输入格式
输入包含:
- 一行,包含两个整数 $c$ 和 $d$ ($1 \le c \le d \le 10^5$),表示你的记录从 $c$ 开始并以 $d$ 结束。
- 一行,包含 $d - c + 1$ 个整数和字符串,即记录的内容。
保证该记录对于某些满足 $1 \le a, b \le 10^6$ 的整数 $a$ 和 $b$ 是有效的,且符合上述规则。
输出格式
输出两个正整数 $a$ 和 $b$ ($1 \le a, b \le 10^6$),它们与给定的记录一致。
如果存在多个有效解,你可以输出其中任意一个。
样例
样例输入 1
7 11 7 8 Fizz Buzz 11
样例输出 1
3 5
样例输入 2
49999 50002 49999 FizzBuzz 50001 Fizz
样例输出 2
2 125
样例输入 3
8 11 Buzz Buzz FizzBuzz Buzz
样例输出 3
10 1
样例输入 4
10 15 10 11 12 13 14 15
样例输出 4
8 23