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());k=0;wz=1;wzz=[];pd=0;nn=n
for i in range(0,500):
    for j in range(0,n):
        if wz not in wzz:
            wzz.append(wz)
            n-=1
        k+=1
        wz+=k-1
        if n<=0:
            pd=1
            break
        if wz>=n:
            wz=wz&nn
    if pd==1:
        print('YES')
        break
if pd==0:
    print('NO')