Problem: Bachgold problem is very easy to formulate. Given a positive integer n represent it as a sum of maximum possible number of prime numbers. One can prove that such representation exists for any integer greater than 1.

Recall that integer k is called prime if it is greater than 1 and has exactly two positive integer divisors — 1 and k. 

Input

The only line of the input contains a single integer n (2 ≤ n ≤ 100 000).

Output

The first line of the output contains a single integer k — maximum possible number of primes in representation.

The second line should contain k primes with their sum equal to n. You can print them in any order. If there are several optimal solution, print any of them.

Examples

Input

5


Output

2
2 3


Input

6


Output

3
2 2 2

Solution (in PYTHON3):

Solution:
# 8 5
#   10 9 8 7 7 7 5 5

##x = 0                                                 # NOT COMPETED PROBEM==NEXT ROUND                 #  1+2*3=7
##y=[]                                                  # NOT COMPETED PROBEM==NEXT ROUND                 #  1*(2+3)=5
##rks, pos = map(int, input().split())                  # NOT COMPETED PROBEM==NEXT ROUND                 #  1*2*3=6
##for _ in range(rks):                                  # NOT COMPETED PROBEM==NEXT ROUND                 #  (1+2)*3=9
##    a = int(input())                                  # NOT COMPETED PROBEM==NEXT ROUND
##    y.append(a)                                       # NOT COMPETED PROBEM==NEXT ROUND
##                                                      # NOT COMPETED PROBEM==NEXT ROUND
##while y[pos] >= y:
##    x += 1
##print(x)
#  floor      2.9==2
import pdb

# pdb.set_trace()


n=int(input())
if n==1:
    print(1)
    print(1)
elif n%2==0:
    print(n//2)
    print(f"{n//2*' 2'} ")
elif n%2!=0:
    x=n-3
    print(x//2+1)
    print(f"{x//2*' 2'} {3}")