A flea is sitting at one of the *n* hassocks, arranged in a circle, at the moment. After minute number *k* the flea jumps through *k* - 1 hassoсks (clockwise). For example, after the first minute the flea jumps to the neighboring hassock. You should answer: will the flea visit all the hassocks or not. We assume that flea has infinitely much time for this jumping.
The only line contains single integer: 1 ≤ *n* ≤ 1000 — number of hassocks.
import poplib
import string
import math


def main_function():
    n = int(input())
    current_point = 1
    listy = [0 for i in range(n + 1)]
    listy[1] = 1
    for i in range(10):
        for j in range(1, n):
            current_point += j
            if current_point <= n:
                listy[current_point] = 1
            else:
                target_val = current_point % n
                if target_val == 0:
                    target_val = n
                listy[target_val] = 1
    if sum(listy) == n:
        print("YES")
    else:
        print("NO")




if __name__ == '__main__':
    main_function()