human
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.

Input

The only line contains single integer: 1 ≤ n ≤ 1000 — number of hassocks.

Output

Output "YES" if all the hassocks will be visited and "NO" otherwise.

Examples

Input

1

Output

YES

Input

3

Output

NO
The above is tricky. Write me a correct solution in PYTHON3.
 Can you provide a the Python program you requested?
assistant
#Here is the Python program you requested.

class CodeforcesTask55ASolution:
    def __init__(self):
        self.result = ''
        self.n = 0

    def read_input(self):
        self.n = int(input())

    def process_task(self):
        hassocks = [x + 1 for x in range(self.n)]
        visits = set()
        visiting = 1
        for x in range(1000 * self.n):
            visiting += x
            visiting = visiting % self.n
            if not visiting:
                visiting = self.n
            visits.add(visiting)
        hassocks.sort()
        v = list(visits)
        v.sort()
        if v == hassocks:
            self.result = "YES"
        else:
            self.result = "NO"

    def get_result(self):
        return self.result

if __name__ == "__main__":
    Solution = CodeforcesTask55ASolution()
    Solution.read_input()
    Solution.process_task()
    print(Solution.get_result())