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:
def funky(x):
    tri=[]
    k=1
    while (k**2+k)/2<x:
        tri.append(int((k**2+k)//2))
        k=k+1
    return tri
def cool(arr,x):
    m=len(arr)
    l=0
    r=m-1
    while r>=l:
        if (arr[l]+arr[r])-x==0:
            return ("YES")
        elif arr[l]+arr[r]>x:
            r=r-1
        else:
            l=l+1
    return("NO")
n=int(input())
arr=funky(n)
print(cool(arr,n))