古希腊掌管原神的神
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

你因为不玩原神被古希腊掌管原神的神发现了,你的下场一定很惨。现在,为了自救你必须找到原神,让它帮帮你。

你来到了众神之地,这里有n个房间,每个房间住着一个神,其中一定有且仅有一个神是原神。n个房间中有a个真神,b个假神和个变化之神,真神只会说真话,假神只会说假话,变化之神可能说真话可能说假话(原神也是真神,假神和变化之神中的一种)。

众神之地有它自己的规则,对于所有你提出的问题,你只能问以下三种问题中的一种。

1.你是原神吗? 2. 某个房间里的神是原神吗?3.原神在哪个房间?

不能再拖延时间了,你必须尽快算出至少问几次才能确定原神在哪个房间。若无法确定,输出"NO",若可以确定,输出"YES",下一行输出最小询问次数。

输入描述:

输入在一行中给出 a,b,c (0 \leq a,b,c < 2 \cdot 10^5,其中a + b + c \neq 0a + b + c = n

输出描述:

第一行输出“YES”或“NO”,如果第一行输出YES,第二行输出最小询问次数。
示例1

输入

复制
2 0 0

输出

复制
YES
1
示例2

输入

复制
0 0 2

输出

复制
NO