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.
n = int(input())

def main(n, parity):
    index = 0
    hassocks = [x for x in range(n)]
    for i in range(parity):
        index = (index + i) % n
        if index in hassocks:
            del hassocks[hassocks.index(index)]
    if hassocks == []:
        return 'YES'
    else:
        return 'NO'

if n % 2 == 1:
    print(main(n, n))
else:
    print(main(n, (2 * n)))
