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.
num = int(input())
s = set()
s2 = set()

curr = 1%num
curr_min = 1%num
s.add(curr)
s2.add((curr, curr_min))
while True:
    curr_min = (curr_min + 1) % num
    curr = (curr + curr_min) % num
    s.add(curr)
    if (curr, curr_min) in s2:
        if len(s) == num:
            print("YES")
        else:
            print("NO")
        break
    s2.add((curr, curr_min))
  		 	  					   		 				 	 	  	