Problem: As you very well know, this year's funkiest numbers are so called triangular numbers (that is, integers that are representable as <image>, where k is some positive integer), and the coolest numbers are those that are representable as a sum of two triangular numbers.

A well-known hipster Andrew adores everything funky and cool but unfortunately, he isn't good at maths. Given number n, help him define whether this number can be represented by a sum of two triangular numbers (not necessarily different)!

Input

The first input line contains an integer n (1 ≤ n ≤ 109).

Output

Print "YES" (without the quotes), if n can be represented as a sum of two triangular numbers, otherwise print "NO" (without the quotes).

Examples

Input

256


Output

YES


Input

512


Output

NO

Note

In the first sample number <image>.

In the second sample number 512 can not be represented as a sum of two triangular numbers.

Solution (in PYTHON3):

Solution:
import math


def sum_of_triangular(x):
    # no. in form (x*x + x)/2 are traingular nos.
    f = math.sqrt(1 + 8*x)
    g = (f-1)/2
    h = math.ceil(g)
    if True:
        for i in range(1 , h):
            c = 1 - 4*(i*i +i -2*x)
            d = math.sqrt(c)
            e = d - math.floor(d)
            if e == 0 and (d-1)%2 == 0:
                return print("Yes")
                break
            else:
                pass
    print("NO")
        

a = int(input())
sum_of_triangular(a)