小红的双好数(hard)
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\,\,\,\,\,\,\,\,\,注:本题和 \sf easy 版本仅背景相同,实际所求并不同,请认真读题!

\,\,\,\,\,\,\,\,\,小红定义 n 是 k - 好数,当且仅当 n 在 k 进制表示下,每一位都不大于 1 。例如,30 是 3-好数,因为 30 在三进制表示下是 (1010)_3 。
\,\,\,\,\,\,\,\,\,现在输入两个正整数 k_1 和 k_2 ,小红希望你找到一个正整数 n \left(2\leq n \leq 10^{18} \right) 满足 n 既是 k_1 -好数,也是 k_2 -好数,你能帮帮她吗?

输入描述:

\,\,\,\,\,\,\,\,\,在一行上输入两个整数k_1,k_2 \left( 2\leq k_1<k_2 \leq 10^{18} \right) 代表小红给定的初始数字。

输出描述:

\,\,\,\,\,\,\,\,\,如果在 [2,10^{18}] 范围内无解,直接在一行上输出 \rm NO ;否则,先在第一行上输出 \rm YES ,随后,在第二行上输出一个正整数 n \left( 2 \le n \le 10^{18}\right) ,代表一个合法解。
\,\,\,\,\,\,\,\,\,如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
4 8

输出

复制
YES
65

说明

\,\,\,\,\,\,\,\,\,注意,本题答案不唯一,64 也是一个可行解。
示例2

输入

复制
3 5

输出

复制
YES
30

说明

\,\,\,\,\,\,\,\,\,30 在三进制表示为 (1010)_3 ,在五进制表示为 (110)_5 ,均为好数。
示例3

输入

复制
998244353 1000000007

输出

复制
NO