位运算2
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

给定三个非负整数 a, b, c,你可以对 a 执行任意次(可以为零次)以下三种按位操作之一:


  • a := a \ \mid \ b


  • a := a \ \& \ b


  • a := a \ \oplus \ b


其中,\mid 表示按位或操作,\& 表示按位与操作,\oplus 表示按位异或操作,:= 表示赋值操作。


你的任务是判断能否通过若干次上述操作将 a 变为 c

输入描述:

第一行输入三个整数 a,b,c \ (0 \le a,b,c < 2^{30})

输出描述:

输出一行一个字符串,若可以通过若干次操作将 a 变为 c,输出 "YES" ,否则输出 "NO"。


你可以以任意的大小写形式输出你的答案。例如,"yEs","yes","Yes" 和 "YES" 都将被视为肯定的回复。

示例1

输入

复制
4 7 0

输出

复制
YES
示例2

输入

复制
11 5 5

输出

复制
YES
示例3

输入

复制
1 2 4

输出

复制
NO