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())
tri=[]
for i in range(2,2000):
    tri.append(i*(i+1)//2)
if n==1:
    print('YES')
    exit()
check=[0]*n 
for i in range(2*n+5):
     check[tri[i]%n]=1 
if sum(check)==n:
    print('YES')
else:
    print('NO')