Eugeny has *n* cards, each of them has exactly one integer written on it. Eugeny wants to exchange some cards with Nikolay so that the number of even integers on his cards would equal the number of odd integers, and that all these numbers would be distinct. 

Nikolay has *m* cards, distinct numbers from 1 to *m* are written on them, one per card. It means that Nikolay has exactly one card with number 1, exactly one card with number 2 and so on. 

A single exchange is a process in which Eugeny gives one card to Nikolay and takes another one from those Nikolay has. Your task is to find the minimum number of card exchanges and determine which cards Eugeny should exchange.
The first line contains two integers *n* and *m* (2 ≤ *n* ≤ 2·10<sup class="upper-index">5</sup>, 1 ≤ *m* ≤ 10<sup class="upper-index">9</sup>) — the number of cards Eugeny has and the number of cards Nikolay has. It is guaranteed that *n* is even.

The second line contains a sequence of *n* positive integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>) — the numbers on Eugeny's cards.
none
6 2
5 6 7 9 4 5
1
5 6 7 9 4 2 
8 6
7 7 7 7 8 8 8 8
6
7 2 4 6 8 1 3 5 
4 1
4 2 1 10
-1
10 10
12 13 10 20 13 10 19 15 21 11
2
12 13 10 20 2 4 19 15 21 11 
20 16
23 27 17 29 23 21 24 23 19 25 16 24 20 17 18 17 16 17 28 17
8
23 27 17 29 2 21 24 4 19 25 16 6 20 8 18 10 1 3 28 5 
30 40
26 22 10 20 29 18 38 11 41 8 33 37 37 3 14 4 3 9 21 38 27 27 7 7 33 12 39 37 17 5
7
26 22 10 20 29 18 38 11 41 8 33 37 2 3 14 4 6 9 21 16 27 24 7 28 1 12 39 13 17 5 
100 20
28 42 37 40 26 40 46 46 25 28 36 36 35 38 45 40 21 38 36 22 30 24 40 38 27 50 47 40 30 45 39 20 18 32 34 24 34 26 27 37 18 40 42 41 26 50 22 27 37 21 30 30 49 36 16 48 46 26 33 22 47 32 38 50 29 46 31 42 26 24 50 26 40 42 26 34 18 32 44 24 16 32 50 30 20 48 26 41 32 30 32 41 30 24 18 32 49 23 20 44
-1
2 1
2 4
1
2 1 
2 1000000000
1 1
1
1 2 
import sys


def read_input():
    f = sys.stdin

    n, m = map(int, f.readline().split())
    a = list(map(int, f.readline().split()))

    return n, m, a


def solve(n, m, a):
    v = []
    visited = set()
    counter = {0: 0, 1: 0}

    for i in range(1, n+1):
        a_i = a[i-1]
        if a_i in visited or counter[a_i % 2] == n//2:
            v.append(i)
        else:
            visited.add(a_i)
            counter[a_i % 2] += 1
    ans = 0
    for i in range(1, m+1):
        if ans == len(v):
            break
        if i in visited:
            continue
        if counter[i % 2] < n//2:
            counter[i % 2] += 1
            a[v[ans]] = i
            ans += 1

    if ans < len(v):
        print(-1)

    print(ans)
    print(' '.join(map(str, a)))


def main():
    solve(*read_input())


if __name__ == '__main__':
    main()
