L. Bitwise operations
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Today in programming class, student Levodt learned about bit operations, specifically the "XOR" operation. This operation exists in all modern programming languages. For instance, in the languages $$$C\!+\!+$$$, $$$Python$$$, and $$$Java$$$, it is designated as "$$$ ^\wedge $$$", while in $$$Pascal$$$, it is designated as "xor". An example of the "xor" operation is: $$$10101_2 \oplus 10001_2 = 00100_2$$$. Note that "XOR" is similar to adding the corresponding bits of numbers modulo 2.

Levodt is given the following homework assignment: find any two numbers whose "XOR" equals a given non-negative number $$$N$$$.

He asks you to help in writing a program that can determine whether there are two natural numbers (not necessarily different), whose "XOR" equals the given $$$N$$$.

Input

A single line contains the number $$$N$$$ $$$(0 \le N \le 10^{18})$$$.

Output

If no two natural numbers exist whose XOR equals to the specified number $$$N$$$, print "NO" (without quotes) on a single line. Otherwise, on the first line, print "YES" (without quotes), on the second line, print two numbers separated by a space, the xor of which is equal to $$$N$$$. The numbers in the output must not exceed $$$10^{18}$$$.

If there are multiple solutions, print any of them.

Examples
Input
15
Output
YES
12 3
Input
6
Output
YES
4 2