Problem: One way to create a task is to learn from math. You can generate some random math statement or modify some theorems to get something new and build a new task from that.

For example, there is a statement called the "Goldbach's conjecture". It says: "each even number no less than four can be expressed as the sum of two primes". Let's modify it. How about a statement like that: "each integer no less than 12 can be expressed as the sum of two composite numbers." Not like the Goldbach's conjecture, I can prove this theorem.

You are given an integer n no less than 12, express it as a sum of two composite numbers.

Input

The only line contains an integer n (12 ≤ n ≤ 106).

Output

Output two composite integers x and y (1 < x, y < n) such that x + y = n. If there are multiple solutions, you can output any of them.

Examples

Input

12


Output

4 8


Input

15


Output

6 9


Input

23


Output

8 15


Input

1000000


Output

500000 500000

Note

In the first example, 12 = 4 + 8 and both 4, 8 are composite numbers. You can output "6 6" or "8 4" as well.

In the second example, 15 = 6 + 9. Note that you can't output "1 14" because 1 is not a composite number.

Solution (in PYTHON3):

Solution:
def SieveOfEratosthenes(k):
    prime = [True for i in range(k+1)]
    p = 2
    while (p * p <= k):
        if (prime[p] == True):
            for i in range(p * 2, k+1, p):
                prime[i] = False
        p += 1
    for p in range(2, k):
        if prime[p]:
            prima.append(p)


prima=[]
n=int(input())
status1=1
status2=1
status3=1
if (n%2==0) :
    a=n//2
    b=n//2
    SieveOfEratosthenes(n)
    while status3==1 :
        if (a%2!=0) :
            for i in range (len(prima)) :
                if prima[i]==a :
                    status1=0
                    break
            if status1==-1 :
                status1=1
            if status1==0 :
                a+=1
                b-=1
                status2=-1
                status1=1
        else :
            status1=1
        if (b%2!=0) :
            for i in range (len(prima)) :
                if prima[i]==b :
                    status2=0
                    break
            if status2==-1 :
                status2=1
            if status2==0 :
                a+=1
                b-=1
                status1=-1
                status2=1
        else :
            status2=1

        if status2==1 and status1==1 :
            status3=0
    print(a,b)
else :
    a=n//2
    b=n//2+1
    SieveOfEratosthenes(n)
    while status3==1 :
        if (a%2!=0) :
            for i in range (len(prima)) :
                if prima[i]==a :
                    status1=0
                    break
            if status1==-1 :
                status1=1
            if status1==0 :
                a+=1
                b-=1
                status2=-1
                status1=1
        else :
            status1=1
        if (b%2!=0) :
            for i in range (len(prima)) :
                if prima[i]==b :
                    status2=0
                    break
            if status2==-1 :
                status2=1
            if status2==0 :
                a+=1
                b-=1
                status1=-1
                status2=1
        else :
            status2=1

        if status2==1 and status1==1 :
            status3=0
    print(a,b)