You are given an array $a$ consisting of $n$ positive integers. Find a non-empty subset of its elements such that their sum is even (i.e. divisible by $2$) or determine that there is no such subset.

Both the given array and required subset may contain equal values.


-----Input-----

The first line contains a single integer $t$ ($1 \leq t \leq 100$), number of test cases to solve. Descriptions of $t$ test cases follow.

A description of each test case consists of two lines. The first line contains a single integer $n$ ($1 \leq n \leq 100$), length of array $a$.

The second line contains $n$ integers $a_1, a_2, \ldots, a_n$ ($1 \leq a_i \leq 100$), elements of $a$. The given array $a$ can contain equal values (duplicates).


-----Output-----

For each test case output $-1$ if there is no such subset of elements. Otherwise output positive integer $k$, number of elements in the required subset. Then output $k$ distinct integers ($1 \leq p_i \leq n$), indexes of the chosen elements. If there are multiple solutions output any of them.


-----Example-----
Input
3
3
1 4 3
1
15
2
3 5

Output
1
2
-1
2
1 2



-----Note-----

There are three test cases in the example.

In the first test case, you can choose the subset consisting of only the second element. Its sum is $4$ and it is even.

In the second test case, there is only one non-empty subset of elements consisting of the first element, however sum in it is odd, so there is no solution.

In the third test case, the subset consisting of all array's elements has even sum.

Difficulty: EASY
Tags: Dynamic programming

Complete search

Implementation

Greedy algorithms
Skill types: Dynamic programming

Complete search

Greedy algorithms

Starter code:

Solutions:
import sys
input = sys.stdin.readline

def fastio():
	from io import StringIO
	from atexit import register
	global input
	sys.stdin = StringIO(sys.stdin.read())
	input = lambda : sys.stdin.readline().rstrip('\r\n')
	sys.stdout = StringIO()
	register(lambda : sys.__stdout__.write(sys.stdout.getvalue()))
fastio()
INF = 10 ** 20
MOD = 10 ** 9 + 7
I = lambda : list(map(int, input().split()))
from math import gcd
from math import ceil
from collections import defaultdict as dd, Counter
from bisect import bisect_left as bl, bisect_right as br
(t,) = I()
while t:
	t -= 1
	(n,) = I()
	a = I()
	if sum(a) % 2 == 0:
		print(n)
		print(*[i + 1 for i in range(n)])
	else:
		idx = -1
		ans = [i + 1 for i in range(n)]
		for i in range(n):
			if a[i] % 2:
				idx = i
				break
		if idx == -1 or n == 1:
			print(-1)
		else:
			print(n - 1)
			ans.pop(idx)
			print(*ans)


n = int(input())
while n != 0:
	l = int(input())
	ar = input()
	p = 0
	arr = ar.split(' ')
	ans = []
	sum = 0
	for i in range(l):
		if int(arr[i]) % 2 == 0:
			print(1)
			p = 1
			print(i + 1)
			break
		else:
			ans.append(i + 1)
			sum += int(arr[i])
			if sum % 2 == 0:
				p = 1
				print(2)
				print(ans[0], ans[1])
				break
	if p == 0:
		print(-1)
	n -= 1


for _ in range(int(input())):
	input()
	p = map(int, input().split())
	even = []
	odd = []
	for (i, x) in enumerate(p):
		i += 1
		if x % 2 == 0:
			even.append(i)
		else:
			odd.append(i)
	if len(even) != 0:
		print(len(even))
		print(' '.join([str(x) for x in even]))
	elif len(odd) >= 2:
		print(2)
		print(' '.join([str(x) for x in odd[:2]]))
	else:
		print(-1)


import os
import sys
from io import BytesIO, IOBase

def main():
	pass
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()

def test():
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			return i + 1
	for i in range(n):
		for j in range(1, n):
			if (a[i] + a[j]) % 2 == 0:
				print(2)
				return f'{i + 1} {j + 1}'
	return -1
t = int(input())
for _ in range(t):
	print(test())


r = int(input())
for i in range(r):
	a = 0
	n = int(input())
	num = input()
	list = [int(x) for x in num.split()]
	if n == 1 and list[0] % 2 != 0:
		print(-1)
	else:
		for i in range(n):
			if list[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			else:
				a += 1
			if a == 2:
				print(2)
				print(1, 2, end=' ')
				print()
				break


for _ in range(0, int(input())):
	n = int(input())
	ar = list(map(int, input().split()))
	count = 0
	op = []
	for i in range(0, n):
		if ar[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif count == 0:
			count += 1
			op.append(i + 1)
		elif count == 1:
			count += 1
			op.append(i + 1)
			print(count)
			print(' '.join((str(x) for x in op)))
			break
	else:
		print(-1)


for t in range(int(input())):
	n = int(input())
	num = list(map(int, input().split()))
	pre = -1
	ans = -1
	for (i, j) in enumerate(num):
		if j % 2 == 0:
			ans = str(i + 1)
			break
		if pre == -1:
			pre = i + 1
		else:
			ans = str(pre) + ' ' + str(i + 1)
			break
	if ans != -1:
		print(2 if len(ans) > 1 else 1)
	print(ans)


import os
import sys
from io import BytesIO, IOBase
from collections import defaultdict

def solution(n, arr):
	arr.insert(0, 0)
	if n == 1 and arr[1] % 2 == 1:
		print(-1)
		return
	for i in range(1, n + 1):
		if arr[i] % 2 == 0:
			print(1)
			print(i)
			return
	print(2)
	print(1, 2)

def main():
	for _ in range(int(input())):
		n = int(input())
		arr = read_array(input())
		solution(n, arr)
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))

def input():
	return sys.stdin.readline().rstrip('\r\n')

def read_array(arr):
	return [int(x) for x in arr.split()]
main()


def solution2(t):
	for i in range(t):
		l_arr = int(input())
		arr = [int(x) for x in input().split()]
		if not arr[0] % 2:
			print('1\n1')
		elif l_arr == 1:
			print(-1)
		elif not arr[1] % 2:
			print('1\n2')
		else:
			print('2\n1 2')

def main():
	t = int(input())
	solution2(t)
main()


t = int(input())
for i in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	for j in range(n):
		A[j] %= 2
	if n == 1:
		if A[0] == 1:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		S = -1
		for j in range(n):
			if A[j] == 0:
				S = j + 1
				break
		if S == -1:
			print(2)
			print(1, 2)
		else:
			print(1)
			print(S)


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	if n == 1:
		if l[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		for i in range(2):
			if l[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
		else:
			print(2)
			print(1, 2)


def solver(n, arr):
	d = dict()
	odd = []
	for (i, v) in enumerate(arr):
		if v % 2 == 0:
			d[i] = v
		elif len(odd) != 0:
			d[i] = v
			d[odd[0]] = arr[odd[0]]
			odd.pop()
		else:
			odd.append(i)
	if len(d) > 0:
		print(len(d))
		for v in d.keys():
			print(v + 1, end=' ')
	else:
		print(-1)
T = int(input())
for _ in range(T):
	n = int(input())
	arr = [int(x) for x in input().split()]
	solver(n, arr)


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(elem) for elem in input().split(' ')]
	(even_counter, odd_counter) = (0, 0)
	for j in a:
		if j % 2 == 1:
			odd_counter += 1
		else:
			even_counter += 1
			break
		if odd_counter == 2:
			break
	if even_counter == 1:
		print('1')
		for j in range(len(a)):
			if a[j] % 2 == 0:
				print(j + 1)
				break
	elif odd_counter == 2:
		print('2')
		result = []
		for j in range(len(a)):
			if a[j] % 2 == 1:
				result.append(j + 1)
			if len(result) == 2:
				break
		print(' '.join([str(elem) for elem in result]))
	else:
		print('-1')


T = int(input())
for i in range(T):
	n = int(input())
	str = input()
	if n == 1:
		if int(str) % 2 == 0:
			print('1')
			print('1')
		else:
			print('-1')
	else:
		b = 0
		for i in range(1, n + 1):
			if int(str.split()[i - 1]) % 2 == 0:
				b = 1
				break
		if b == 1:
			print('1')
			print(i)
		else:
			print('2')
			print('1 2')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	odd = []
	even = []
	for i in range(n):
		if a[i] % 2 == 0:
			even.append(i + 1)
			break
	if len(even) != 0:
		print(1)
		print(even[0])
	else:
		for i in range(1, n):
			if a[i - 1] % 2 != 0 and a[i] % 2 != 0:
				odd.append(i)
				odd.append(i + 1)
				break
		if len(odd) == 2:
			print(2)
			print(odd[0], odd[1])
		else:
			print(-1)


import sys
input = sys.stdin.readline
tc = int(input())
for i in range(tc):
	n = int(input())
	k = [*map(int, input().split())]
	if n == 1:
		if k[0] % 2:
			print(-1)
		else:
			print(1)
			print(1)
	elif n >= 2:
		(a, b) = (k[0], k[1])
		if a % 2 == 0:
			print(1)
			print(1)
		elif b % 2 == 0:
			print(1)
			print(2)
		else:
			print(2)
			print(1, 2)


cases = int(input())
for _ in range(cases):
	n = int(input())
	l = list(map(int, input().split()))
	found = False
	odd_one = False
	index = 0
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			found = True
			break
		elif not found and (not odd_one):
			odd_one = True
			index = i + 1
			odd_one = True
		elif not found and odd_one:
			found = True
			print(2)
			print(index, i + 1)
			break
	if not found:
		print(-1)


for _ in range(int(input())):
	input()
	li = [int(i) for i in input().split()]
	if len(li) == 1 and sum(li) % 2 == 1:
		print(-1)
		continue
	odds = []
	even = []
	counter = 0
	while len(odds) != 2 and len(even) == 0:
		temp = li[counter]
		even.append(temp) if temp % 2 == 0 else odds.append(temp)
		counter += 1
	if len(even) > 0:
		print(1)
		print(li.index(even[0]) + 1)
	else:
		print(2)
		first = li.index(odds[0])
		li[first] = -1
		second = li.index(odds[1])
		print(first + 1, second + 1)


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	ans = []
	for i in range(n):
		if a[i] % 2 == 0:
			ans.append(i)
			break
	if len(ans) == 0:
		if n > 1:
			print(2)
			print(1, 2)
		else:
			print(-1)
	else:
		print(1)
		print(ans[0] + 1)


def get_even_odd(l):
	(e, o) = ([], [])
	for i in l:
		if i % 2 == 0:
			e.append(i)
		else:
			o.append(i)
	return (e, o)
t = int(input())
for _ in range(t):
	n = int(input())
	l = [int(i) for i in input().split(' ')]
	(ev, od) = get_even_odd(l)
	if len(ev) > 0:
		print(str(1))
		print(str(l.index(ev[0]) + 1))
	elif len(od) > 1:
		print(str(2))
		i1 = l.index(od[0]) + 1
		rm = od[0]
		od.remove(rm)
		l = list(reversed(l))
		i2 = l.index(od[0]) + 2
		print(' '.join([str(i) for i in [i1, i2]]))
	else:
		print('-1')


for t in range(int(input())):
	n = int(input())
	x = list(map(int, input().split()))
	flag = 0
	for i in range(n):
		if x[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
	if flag == 0:
		if n == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)


import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
testcases = int(input())
for j in range(testcases):
	n = int(input())
	arr = list(map(int, input().split()))
	ev = 0
	evs = []
	odd = 0
	odds = []
	for m in range(n):
		if arr[m] % 2 == 0:
			ev += 1
			evs.append(m + 1)
		else:
			odd += 1
			odds.append(m + 1)
	if ev >= 1:
		print(1)
		print(evs[-1])
	elif odd >= 2:
		print(2)
		print(str(odds[-2]) + ' ' + str(odds[-1]))
	else:
		print(-1)


t = int(input())
inputs = [[]] * t
for i in range(t):
	_ = input()
	inputs[i] = list(map(int, input().split()))
for a in inputs:
	s = ''.join(map(lambda x: str(x % 2), a))
	i = s.find('0')
	if i >= 0:
		print(1)
		print(i + 1)
	elif len(s) < 2:
		print(-1)
	else:
		print(2)
		print('1 2')


case = int(input())
for i in range(case):
	l = int(input())
	list1 = [int(v) for v in input().split()]
	if list1[0] % 2 == 0:
		print(1)
		print(1)
	elif len(list1) == 1:
		print(-1)
	elif list1[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ok = False
	for x in range(n):
		if not ok and a[x] % 2 == 0:
			print(1)
			print(x + 1)
			ok = True
		for y in range(n):
			if not ok and x != y and ((a[x] + a[y]) % 2 == 0):
				print(2)
				print(x + 1, y + 1)
				ok = True
	if not ok:
		print(-1)


t = int(input())
a = []
for i in range(t):
	n = int(input())
	a.append(list(map(int, input().split()[:n])))

def chk(k):
	c = []
	c = [x for x in k if x % 2 == 0]
	if len(c) == 0:
		if len(k) == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)
	else:
		print(1)
		print(k.index(c[0]) + 1)
for i in a:
	chk(i)


t = int(input())
for i in range(t):
	n = int(input())
	nn = [int(s) for s in input().split()]
	tet = nn[0]
	if tet % 2 == 0:
		print(1)
		print(1)
	else:
		g = False
		r = 0
		sec = 0
		for l in range(1, n):
			if (tet + nn[l]) % 2 == 0:
				g = True
				sec = 2
				r = l
				break
			elif nn[l] % 2 == 0:
				g = True
				sec = 1
				r = l
				break
		if g:
			print(sec)
			if sec == 1:
				print(r + 1)
			else:
				print(1, r + 1)
		else:
			print(-1)


q = int(input())
for z in range(0, q):
	n = int(input())
	a = list(map(int, input().split()))
	l = 0
	for i in range(0, n):
		if a[i] % 2 == 0:
			print('1')
			print(i + 1)
			l = 1
			break
	if l == 0:
		if n == 1:
			print('-1')
		else:
			print('2')
			print('1 2')


n = int(input())

def solve():
	case = int(input())
	arr = list(map(int, input().split()))
	found = False
	odd = []
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			found = True
			break
		else:
			odd.append(i)
	if not found:
		if len(odd) <= 1:
			print(-1)
		else:
			print(2)
			print(str(odd[0] + 1) + ' ' + str(odd[1] + 1))
for i in range(n):
	solve()


t = int(input())
while t > 0:
	input()
	lst = list(map(int, input().split()))
	a = [i + 1 for i in range(len(lst)) if lst[i] % 2 == 0]
	b = [i + 1 for i in range(len(lst)) if lst[i] % 2 == 1]
	if len(b) % 2 == 1:
		b = b[:-1]
	rez = a + b
	print(str(len(rez)) + '\n' + ' '.join([str(r) for r in rez]) if len(rez) > 0 else -1)
	t -= 1


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		if a[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	elif a[0] % 2 == 1:
		if a[1] % 2 == 1:
			print(2)
			print(1, 2)
		else:
			print(1)
			print(2)
	else:
		print(1)
		print(1)


from math import factorial
from collections import Counter, defaultdict
from heapq import heapify, heappop, heappush
import os
import sys
from io import BytesIO, IOBase
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def RL():
	return map(int, sys.stdin.readline().rstrip().split())

def N():
	return int(input())

def comb(n, m):
	return factorial(n) / (factorial(m) * factorial(n - m)) if n >= m else 0

def perm(n, m):
	return factorial(n) // factorial(n - m) if n >= m else 0

def mdis(x1, y1, x2, y2):
	return abs(x1 - x2) + abs(y1 - y2)
mod = 1000000007
INF = float('inf')

def main():
	for _ in range(N()):
		n = N()
		arr = list(RL())
		a = []
		b = []
		for i in range(n):
			if arr[i] % 2 == 0:
				b.append(i + 1)
				break
			else:
				a.append(i + 1)
				if len(a) == 2:
					break
		if len(a) == 2:
			print(2)
			print(*a)
		elif len(b) == 1:
			print(1)
			print(b[0])
		else:
			print(-1)
main()


from sys import stdin, stdout
import math
for i in range(int(input())):
	n = int(stdin.readline().strip())
	f = list(map(int, stdin.readline().split()))
	if n == 1:
		if f[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif f[0] % 2 == 0:
		print(1)
		print(1)
	elif f[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	inde = 0
	flag = 0
	num = 0
	for j in range(n):
		if arr[j] % 2 == 0:
			print('1')
			print(j + 1)
			num = 1
			break
		elif flag == 0:
			flag = 1
			inde = j + 1
		else:
			print('2')
			print(str(inde) + ' ' + str(j + 1))
			num = 1
			break
	if num == 0:
		print('-1')


n = int(input())
for _ in range(n):
	input()
	A = list(map(int, input().split()))
	if A[0] % 2 == 0:
		print(1)
		print(1)
	elif len(A) >= 2 and A[1] % 2 == 0:
		print(1)
		print(2)
	elif len(A) >= 2:
		print(2)
		print(1, 2)
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	pos = None
	for i in range(n):
		if a[i] % 2 == 0:
			pos = i + 1
			break
	if pos:
		print(1)
		print(pos)
	elif n > 1:
		print(2)
		print(1, 2)
		continue
	else:
		print(-1)


T = int(input())
for __ in range(T):
	n = int(input())
	ls = list(map(int, input().split()))
	(odds, evens) = ([], [])
	for (i, x) in enumerate(ls):
		if x % 2 == 0:
			evens.append(i + 1)
		else:
			odds.append(i + 1)
	if evens:
		print(1)
		print(evens[0])
	elif len(odds) >= 2:
		print(2)
		print(odds[0], odds[1])
	else:
		print(-1)


def ans(n, arr):
	for i in range(n):
		if arr[i] % 2 == 0:
			return ['e', i + 1]
	if n == 1:
		return ['no', -1]
	else:
		return ['o', i + 1]
T = int(input())
for i in range(T):
	n = int(input())
	arr = list(map(int, input().strip().split(' ')))
	x = ans(n, arr)
	if x[0] == 'e':
		print(1)
		print(x[1])
	elif x[0] == 'o':
		print(2)
		print('1 2')
	else:
		print(-1)


q = int(input())
for j in range(q):
	n = int(input())
	a = list(map(int, input().split()))
	even_ind = -1
	for i in range(len(a)):
		if a[i] % 2 == 0:
			even_ind = i + 1
			break
	if even_ind > 0:
		print(1)
		print(even_ind)
	elif n > 1:
		print(2)
		print('1 2')
	else:
		print(-1)


t = int(input())
for i in range(0, t):
	n = int(input())
	l = list(map(int, input().split()))
	ind = []
	for j in range(0, len(l)):
		if l[j] % 2 == 0:
			ind = []
			ind.append(j + 1)
			break
		elif len(l) == 1:
			ind = []
		else:
			ind.append(j + 1)
		if len(ind) == 2:
			break
	if len(ind) > 0:
		print(len(ind))
		for k in range(0, len(ind)):
			print(ind[k], end=' ')
		print()
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	i = 0
	while i < len(l):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif i > 0 and (l[i - 1] + l[i]) % 2 == 0:
			print(2)
			print(i, i + 1)
			break
		i += 1
	if i == len(l):
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	if n == 1 and arr[0] % 2 != 0:
		print(-1)
	else:
		p = []
		for i in range(n):
			if arr[i] % 2 != 0:
				p.append(i + 1)
			if arr[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			if len(p) == 2:
				print(2)
				print(*p)
				break


a = int(input())
k = []
t = []
r = 1
for i in range(a):
	s = input()
	n = list(map(int, input().split()))
	p = 0
	ch = 0
	for i in n:
		p = p + i
		k.append(r)
		if i % 2 == 0:
			print('1')
			print(n.index(i) + 1)
			break
		if p % 2 == 0:
			print(len(k))
			print(*k, sep=' ')
			ch = 1
			break
		if ch != 1 and r == len(n):
			print('-1')
		r = r + 1
	k.clear()
	r = 1


R = lambda : map(int, input().split())
for _ in range(int(input())):
	n = int(input())
	odds = []
	success = 0
	for (i, x) in enumerate(R()):
		if x % 2:
			odds.append(i + 1)
			if len(odds) > 1:
				print(2)
				print(odds[0], odds[1], sep=' ')
				success = 1
				break
		else:
			print(1, i + 1, sep='\n')
			success = 1
			break
	if not success:
		print(-1)


for tc in range(0, int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	a = []
	for i in range(0, len(l)):
		if l[i] % 2 == 0:
			print('1')
			print(i + 1)
			break
		else:
			a.append(l[i])
			if len(a) > 1:
				print('2')
				print(i, i + 1)
				break
			elif len(a) == len(l):
				print('-1')
				break


t = int(input())
for i in range(t):
	e = -1
	o1 = -1
	o2 = -1
	n = int(input())
	h = input().split()
	for j in range(n):
		a = int(h[j])
		if a % 2 == 0:
			if e == -1:
				e = j + 1
		elif o1 == -1:
			o1 = j + 1
		elif o2 == -1:
			o2 = j + 1
		if e != -1 or (o1 != -1 and o2 != -1):
			break
	if e != -1:
		print('1\n' + str(e))
	elif o1 != -1 and o2 != -1:
		print('2\n' + str(o1) + ' ' + str(o2))
	else:
		print('-1')


import sys
reader = (s.rstrip() for s in sys.stdin)
input = reader.__next__

def gift():
	for _ in range(t):
		n = int(input())
		array = list(map(int, input().split()))
		odd = []
		found = False
		for i in range(n):
			if array[i] % 2 == 0:
				yield 1
				yield (i + 1)
				found = True
				break
			else:
				odd.append(i + 1)
				if len(odd) == 2:
					yield 2
					yield ' '.join((str(x) for x in odd))
					found = True
					break
				else:
					continue
		if not found:
			yield (-1)
t = int(input())
ans = gift()
print(*ans, sep='\n')


for _ in range(int(input())):
	n = int(input())
	arr = [int(x) for x in input().split()]
	if sum(arr) % 2 == 0:
		print(n)
		for i in range(n):
			print(i + 1, end=' ')
	elif n == 1 and arr[0] % 2 == 1:
		print(-1)
	else:
		k = 0
		new = []
		for i in range(n):
			if arr[i] % 2 == 0:
				k = i + 1
				break
		else:
			new = [1, 2]
		if k != 0:
			print(1)
			print(k)
		elif len(new) != 0:
			print(len(new))
			print(*new)
		else:
			print(-1)


a = int(input())
for i in range(a):
	b = int(input())
	chk = 0
	c = [int(g) for g in input().split()]
	if c[0] % 2 == 0:
		print(1)
		print(1)
		chk = 1
	else:
		for index in range(1, len(c)):
			if c[index] % 2 == 0:
				print(1)
				print(index + 1)
				chk = 1
				break
			elif (c[index] + c[index - 1]) % 2 == 0:
				print(2)
				print(index, index + 1)
				chk = 1
				break
	if chk == 0:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	flag = n + 1
	for i in range(n):
		if l[i] % 2 == 0:
			print('1')
			print(i + 1)
			flag = i + 1
			break
	if flag == n + 1:
		print(['2\n1 2', '-1'][n == 1])


from math import *

def binarySearch(arr, x, i):
	l = i
	r = len(arr) - 1
	while l <= r:
		mid = (l + r) // 2
		if arr[mid] == x:
			return mid
		elif arr[mid] < x:
			l = mid + 1
		else:
			r = mid - 1
	return -1

def js(arr, x):
	l = 0
	r = len(arr) - 1
	ans = -1
	while l <= r:
		m = (l + r) // 2
		if arr[m] <= x:
			ans = m
			l = m + 1
		else:
			r = m - 1
	return ans

def jg(arr, x):
	l = 0
	r = len(arr) - 1
	ans = -1
	while l <= r:
		m = (l + r) // 2
		if arr[m] >= x:
			ans = m
			r = m - 1
		else:
			l = m + 1
	return ans
for __ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	e = []
	o = []
	for i in range(n):
		if a[i] % 2 == 0 and len(e) < 1:
			e.append(i + 1)
		elif a[i] % 2 == 1 and len(o) < 2:
			o.append(i + 1)
	if len(e) > 0:
		print(len(e))
		print(*e)
	elif len(e) == 0 and len(o) >= 2:
		print(2)
		print(*o[:2])
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	line = input()
	a = [int(x) for x in line.split(' ')]
	evens = []
	odds = []
	for i in range(n):
		k = a[i]
		if k % 2:
			odds.append(i + 1)
		else:
			evens.append(i + 1)
	if not evens and len(odds) == 1:
		print(-1)
	elif evens:
		print(1)
		print(evens[0])
	else:
		print(2)
		print(odds[0], odds[1])


T = int(input())
for t in range(T):
	n = int(input())
	lst = [int(k) for k in input().split()]
	lst.insert(0, 0)
	flag = False
	first = 0
	for i in range(1, n + 1):
		if lst[i] % 2 == 0:
			flag = True
			print(1)
			print(i)
			break
		elif first == 0:
			first = i
		else:
			flag = True
			print(2)
			print(first, i)
			break
	if not flag:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	f = 0
	i = 0
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		for j in range(n):
			if a[j] % 2 == 0:
				f = 1
				i = j + 1
				break
		if f == 1:
			print(1)
			print(i)
		else:
			print(2)
			print(1, 2)


nxt = 0
for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
		continue
	for j in range(n):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			nxt = 1
			break
	if nxt == 1:
		nxt = 0
		continue
	print(2)
	print(1, 2)


for _ in range(int(input())):
	n = int(input())
	count = 0
	arr = list(map(int, input().split()))
	for x in range(0, n):
		if arr[x] % 2 == 0:
			ans = x + 1
			count = 1
	if count == 1:
		print(1)
		print(ans)
	elif n == 1:
		print(-1)
	else:
		print(2)
		print(1, end=' ')
		print(2)


t = int(input())
ls = [list(map(int, input().split())) for _ in range(2 * t)]
n = []
a = []
for i in range(2 * t):
	if i % 2 == 0:
		n.append(ls[i])
	elif i % 2 == 1:
		a.append(ls[i])
l = 0
for j in range(t):
	if len(a[j]) == 1 and a[j][0] % 2 == 1:
		print(-1)
	else:
		for k in range(len(a[j])):
			if a[j][k] % 2 == 0:
				print(1)
				print(k + 1)
				l = 0
				break
			elif a[j][k] % 2 == 1 and l == 0:
				l = k + 1
			elif a[j][k] % 2 == 1 and l != 0:
				print(2)
				print(l, k + 1)
				l = 0
				break


for i in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	s = 0
	index1 = []
	if len(l) == 1 and l[0] % 2 == 1:
		print(-1)
		continue
	for j in range(len(l)):
		if l[j] % 2 == 0:
			index = j + 1
			print(1)
			print(index)
			break
		else:
			s += l[j]
			flag = 0
			index1.append(j + 1)
			if s % 2 == 0:
				flag = 1
			if flag == 1:
				print(len(index1))
				for j in range(len(index1)):
					if j == len(index1) - 1:
						print(index1[j])
					else:
						print(index1[j], end=' ')
				break


for i in range(int(input())):
	x = int(input())
	a = list(map(int, input().split()))
	if sum(a) % 2 == 0:
		print(x)
		print(*[i for i in range(1, x + 1)])
	elif x == 1 and sum(a) % 2 != 0:
		print(-1)
	else:
		y = [i for i in range(x) if a[i] % 2 == 0]
		if len(y) != 0:
			print(1)
			print(y[0] + 1)
		else:
			print(2)
			print('1 2')


import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	done = False
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			done = True
			break
	if not done:
		if n >= 2:
			print(2)
			print(1, 2)
		else:
			print(-1)


T = int(input())
for t in range(T):
	n = int(input())
	a = list(map(int, input().split()))
	ans = 0
	found = -1
	res = []
	for i in range(n):
		if a[i] % 2 == 0:
			ans = 1
			res = [str(i + 1)]
			found = 1
			break
		else:
			ans += 1
			res.append(str(i + 1))
			if ans == 2:
				found = 2
				break
	if found < 0:
		print(-1)
	else:
		print(ans)
		print(' '.join(res))


import sys, random, bisect
from collections import deque, defaultdict
from heapq import heapify, heappop, heappush
from itertools import permutations
from math import gcd, log
MOD = int(1000000000.0 + 7)
INF = int(1e+20)
input = lambda : sys.stdin.readline().rstrip()
mi = lambda : map(int, input().split())
li = lambda : list(mi())
t = int(input())
for _ in range(t):
	n = int(input())
	arr = li()
	odd = []
	even = []
	for (i, a) in enumerate(arr):
		if a % 2 == 0:
			even.append(i + 1)
			break
		else:
			odd.append(i + 1)
			if len(odd) > 1:
				break
	if len(even) > 0:
		print(1)
		print(even[0])
	elif len(odd) > 1:
		print(2)
		print('{} {}'.format(odd[0], odd[1]))
	else:
		print(-1)


for _ in range(int(input())):
	N = int(input())
	(X, Check) = (list(map(int, input().split())), False)
	for i in range(N):
		if X[i] % 2 == 0:
			print(1, i + 1, sep='\n')
			Check = True
			break
	if not Check:
		print(-1 if N == 1 else '2\n1 2')


for T in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	even = []
	odd = []
	for i in range(n):
		if arr[i] % 2 == 0:
			even.append(i + 1)
			break
		else:
			odd.append(i + 1)
			if len(odd) == 2:
				break
	if len(even) == 1:
		print(1)
		print(even[0])
	elif len(odd) == 2:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)


for _ in range(int(input())):
	N = int(input())
	seq = list(map(int, input().split()))
	even = []
	odd = []
	l_even = 0
	l_odd = 0
	for i in range(N):
		if seq[i] % 2 == 1:
			odd.append(i + 1)
			l_odd += 1
			if l_odd == 2:
				print(2)
				print(*odd)
				break
		else:
			even.append(i + 1)
			l_even += 1
			if l_even == 1:
				print(1)
				print(*even)
				break
	else:
		print(-1)


z = input
mod = 10 ** 9 + 7
from collections import *
from queue import *
from sys import *
from collections import *
from math import *
from heapq import *
from itertools import *
from bisect import *
from collections import Counter as cc
from math import factorial as f

def lcd(xnum1, xnum2):
	return xnum1 * xnum2 // gcd(xnum1, xnum2)
for _ in range(int(z())):
	n = int(z())
	l = list(map(int, z().split()))
	el = []
	ol = []
	(e, o) = (0, 0)
	j = 1
	for i in l:
		if i % 2 == 0:
			e += 1
			el.append([j, i])
		else:
			o += 1
			ol.append([j, i])
		j += 1
	if o >= 2:
		print(2)
		print(ol[0][0], ol[1][0])
		continue
	if e >= 1:
		print(1)
		print(el[0][0])
		continue
	else:
		print(-1)


for t in range(int(input())):
	n = int(input())
	a = list(map(int, str.split(input())))
	Sum = 0
	rslt = 0
	if n == 1 and a[0] % 2 != 0:
		print(-1)
	else:
		for _ in range(n):
			if a[_] % 2 == 0:
				print(1)
				print(_ + 1)
				break
			else:
				Sum += a[_]
				rslt += 1
				if Sum % 2 == 0:
					print(rslt)
					for i in range(1, rslt + 1):
						print(i, end=' ')
					print('')
					break


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	f = 0
	ar = []
	for i in range(n):
		x = a[i]
		if x % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
	if f != 1:
		if n == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)


a = int(input())
for i in range(a):
	b = int(input())
	c = input().split()
	even = 0
	odd = 0
	odd_tag1 = 0
	odd_tag2 = 0
	even_tag = 0
	for i in range(len(c)):
		if int(c[i]) % 2 == 0:
			even += 1
			even_tag = i + 1
		else:
			odd += 1
			if odd_tag1 == 0:
				odd_tag1 = i + 1
			else:
				odd_tag2 = i + 1
	if even > 0:
		print('1')
		print(even_tag)
	elif odd > 1:
		print('2')
		print('{} {}'.format(odd_tag1, odd_tag2))
	else:
		print('-1')


t = int(input())
for i2 in range(t):
	n = int(input())
	x = list(map(int, input().split()))
	for i in range(n):
		if x[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif i > 0:
			print(2)
			print(1, i + 1)
			break
		elif i == n - 1:
			print(-1)


for _ in range(int(input())):
	n = int(input())
	data = list(map(int, input().split()))
	found = False
	odd = []
	for i in range(n):
		if data[i] % 2 == 0:
			print(1)
			print(i + 1)
			found = True
			break
		else:
			odd.append(i)
			if len(odd) == 2:
				print(2)
				print(odd[0] + 1, odd[1] + 1)
				found = True
				break
	if not found:
		print(-1)


def code(inpu, n):
	if len(inpu) == 1 and inpu[0] % 2 != 0:
		print(-1)
		return
	for i in range(len(inpu)):
		if inpu[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
	print(2)
	print(1, 2)
t = int(input())
for k in range(t):
	n = int(input())
	inpu = [int(i) for i in input().split()]
	code(inpu, n)


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	par = []
	impar = []
	for (i, v) in enumerate(a):
		if v % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			impar.append(i + 1)
			if len(impar) == 2:
				print(2)
				print(*impar)
				break
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	li = list(map(int, input().split()))
	boo = False
	for i in range(n):
		if li[i] % 2 == 0:
			print(1)
			print(i + 1)
			boo = True
			break
		if li[i] % 2 == 1:
			for j in range(i + 1, n):
				if li[j] % 2:
					print(2)
					print(i + 1, j + 1)
					boo = True
					break
		if boo == True:
			break
	if boo == False:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
	else:
		if n == 1:
			print(-1)
		else:
			print(2)
			print('1 2')


t = int(input())
s = []
k = []
for ibhgdfw in range(0, t):
	n = int(input())
	x = input()
	xx = x.split()
	h = 0
	for i in range(0, n):
		if int(xx[i]) % 2 == 0:
			s.append(1)
			k.append([i + 1])
			h += 1
			break
	if h == 0:
		f = 0
		ff = []
		for i in range(0, n):
			if int(xx[i]) % 2 == 1:
				f += 1
				ff.append(i + 1)
			if f == 2:
				s.append(2)
				k.append(ff)
				break
	if h == 0 and f != 2:
		s.append(-1)
		k.append([])
for i in range(0, len(s)):
	print(s[i])
	if s[i] != -1:
		for j in k[i]:
			print(j, end=' ')
		print()


for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	j = -1
	z = -1
	even = False
	for i in range(n):
		if a[i] % 2:
			if j == -1:
				j = i + 1
			elif z == -1:
				z = i + 1
				break
		else:
			even = True
			j = i + 1
			break
	if not even:
		if z == -1:
			print(-1)
		else:
			print(2)
			print(j, z)
	else:
		print(1)
		print(j)


from math import ceil, sqrt, gcd, log, floor
from collections import deque

def ii():
	return int(input())

def si():
	return input()

def mi():
	return map(int, input().strip().split(' '))

def li():
	return list(mi())
for _ in range(ii()):
	n = ii()
	a = li()
	f = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print('1')
			print(i + 1)
			f = 1
			break
	if f == 0:
		if n == 1:
			print('-1')
		else:
			print('2')
			print(1, 2)


t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(e) for e in input().split()]
	fl = False
	for i in range(n):
		if fl:
			break
		if arr[i] % 2 == 0:
			print('1')
			print(i + 1)
			fl = True
			break
		for j in range(i + 1, n):
			if (arr[i] + arr[j]) % 2 == 0:
				print('2')
				print(i + 1, j + 1)
				fl = True
				break
	if not fl:
		print('-1')


def solve(size, mySeq):
	if size == 1:
		if mySeq[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		(a, b) = mySeq[:2]
		if (a + b) % 2:
			print(1)
			print(1 if not a % 2 else 2)
		else:
			print(2)
			print(1, 2)
for _ in range(int(input())):
	size = int(input())
	mySeq = list(map(int, input().split()))
	solve(size, mySeq)


for tc in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	f = 0
	fa = 0
	c = 0
	cc = []
	for i in range(n):
		if l[i] % 2:
			c += 1
			cc.append(i + 1)
		else:
			f += 1
			fa = i + 1
	if f:
		print(1)
		print(fa)
	elif c > 1:
		print(2)
		print(*cc[:2])
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	a = []
	a = [int(s) for s in input().split()]
	g = [s % 2 for s in a]
	if g.count(0) == 0 and g.count(1) < 2:
		print('-1')
	elif g.count(0) > 0:
		print('1')
		print(g.index(0) + 1)
	else:
		print('2')
		v = g.index(1)
		print(v + 1, end=' ')
		g[v] = 0
		print(g.index(1) + 1)


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	odd = []
	even = []
	flag = 0
	for x in range(len(a)):
		if a[x] % 2 == 0:
			flag = 1
			even.append(x + 1)
		else:
			odd.append(x + 1)
		if len(odd) == 2:
			break
	if flag == 1:
		print(1)
		print(even[0])
	elif len(odd) == 1 and flag == 0:
		print(-1)
	else:
		print(2)
		print(odd[0], odd[1])


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	if n == 1:
		if arr[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		for i in range(n):
			if arr[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			elif i < n and arr[i + 1] % 2 == 1:
				print(2)
				print(i + 1, i + 2)
				break


m2 = lambda x: int(x) % 2
k = int(input())
for _ in range(k):
	(n, s) = (int(input()), list(map(m2, input().split())))
	if 0 in s:
		print(1)
		print(s.index(0) + 1)
	elif s.count(1) >= 2:
		print(2)
		print(str(s.index(1) + 1) + ' ' + str(s.index(1, s.index(1) + 1) + 1))
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 != 0:
		print(-1)
	else:
		o = -1
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			if o != -1:
				print(2)
				print(o + 1, i + 1)
				break
			o = i


for _ in range(int(input())):
	n = int(input())
	aa = [int(x) for x in input().split()]
	s = []
	odd = 0
	done = -1
	for (i, a) in enumerate(aa):
		if a % 2 == 0:
			print(1)
			print(i + 1)
			done = 1
			break
		if a % 2 == 1:
			odd += 1
			if odd == 2:
				print(len(aa[:i + 1]))
				for k in range(i + 1):
					print(k + 1, end=' ')
				print()
				done = 1
				break
	if done == -1:
		print(-1)


t = int(input())
for I in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	(odd, even) = ([], [])
	for i in range(len(a)):
		if a[i] % 2:
			odd.append(i + 1)
		else:
			even.append(i + 1)
	if len(even) > 0:
		print(1)
		print(even[0])
	elif len(odd) > 1:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)


t = int(input())
for i in range(t):
	length = int(input())
	a = list(map(int, input().split(' ')))
	if length == 1 and a[0] % 2 == 0:
		print(1)
		print(1)
	elif length == 1 and a[0] % 2 != 0:
		print(-1)
	if length != 1:
		flag = 0
		for j in range(2):
			if a[j] % 2 == 0:
				print(1)
				print(j + 1)
				flag = 1
				break
		if flag == 0:
			print(2)
			print(1, 2)


from sys import stdin, stdout

def main():
	t = int(input())
	for x in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		e = 0
		d = {}
		c = 0
		for i in range(n):
			if a[i] % 2 == 0:
				ind = i
				e = 1
			elif d.get(a[i], -1) == -1:
				c += 1
				d[a[i]] = i
			else:
				d[101] = i
				c += 1
				break
		if e == 1:
			print(1)
			print(ind + 1)
		elif c >= 2:
			print(2)
			cnt = 0
			for i in d:
				print(d[i] + 1, end=' ')
				cnt += 1
				if cnt == 2:
					break
		else:
			print(-1)
main()


for _ in range(int(input())):
	input()
	arr = list(map(int, input().split()))
	if len(arr) == 1:
		if not arr[0] % 2:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		found = False
		for (i, x) in enumerate(arr):
			if not x % 2:
				print(1)
				print(i + 1)
				found = True
				break
		if not found:
			print(2)
			print(1, 2)


t = int(input())
while t:
	even = []
	odd = []
	n = int(input())
	q = list(map(int, input().split()))
	for i in range(0, len(q)):
		if q[i] % 2 == 0:
			even.append(i + 1)
			i += 1
		else:
			odd.append(i + 1)
			i += 1
	if len(even) >= 1:
		print('1')
		print(even[0])
	elif len(odd) >= 2:
		print('2')
		print(odd[0], odd[1])
	else:
		print('-1')
	t -= 1


test = int(input())
for _ in range(test):
	n = int(input())
	arr = list(map(int, input().split()))
	(flag, odd) = (0, 0)
	k = []
	for (i, a) in enumerate(arr):
		if a % 2 == 0:
			k = []
			flag = 1
			k.append(i + 1)
			break
		else:
			odd += 1
			k.append(i + 1)
		if odd == 2:
			flag = 1
			break
	if flag == 1:
		print(len(k))
		for j in k:
			print(j, end=' ')
		print()
	else:
		print(-1)


t = int(input())

def evensubset(l):
	for i in range(n + 1):
		if l[i] % 2 != 0 and l[i + 1] % 2 != 0:
			print('2')
			print(i + 1, i + 2)
			break
		elif l[i] % 2 == 0:
			print('1')
			print(i + 1)
			break
		elif l[i] % 2 != 0 and l[i + 1] % 2 == 0:
			print('1')
			print(i + 2)
			break
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if len(a) > 1:
		evensubset(a)
	elif a[0] % 2 == 0:
		print('1')
		print('1')
	else:
		print('-1')


from sys import stdin
input = stdin.buffer.readline

def f(i, pref):
	if pref[i] == (i + 1) * (i + 2) // 2 and pref[-1] - pref[i] == (n - i - 1) * (n - i) // 2:
		return True
	return False
for _ in range(int(input())):
	n = int(input())
	(*a,) = map(int, input().split())
	if len(a) == 1:
		if a[0] & 1:
			print(-1)
		else:
			print('1\n1')
	elif a[0] & 1 == 0:
		print('1\n1')
	elif a[1] & 1 == 0:
		print('1\n2')
	else:
		print(2)
		print(1, 2)


for i in range(int(input())):
	input()
	y = []
	x = list(map(int, input().split()))
	(sounter, counter) = (0, 0)
	for j in range(len(x)):
		if x[j] % 2 == 0:
			print(1)
			print(j + 1)
			sounter = 1
			counter = 0
			break
		else:
			y.append(j + 1)
			counter += 1
		if counter == 2:
			print(len(y))
			print(*y, sep=' ')
			sounter = 1
			break
	if sounter == 0:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	even = False
	for i in range(n):
		if a[i] % 2 == 0:
			print(1, '\n', i + 1)
			even = True
			break
	if not even:
		if len(a) == 1:
			print(-1)
		else:
			print(2, '\n', '1 2')


for _ in range(int(input())):
	n = int(input())
	ar = list(map(int, input().split()))
	if n == 1 and ar[0] % 2 == 1:
		print(-1)
		continue
	evn = None
	odd = None
	for i in range(n):
		if ar[i] % 2 == 0:
			evn = i
			break
		elif i == 1:
			break
	if evn == None:
		print(2)
		print(1, 2)
	else:
		print(1)
		print(evn + 1)


N = int(input())
ans = []
for i in range(0, N):
	n = int(input())
	A = list(map(int, input().split()))
	if n == 1:
		if A[0] % 2 == 0:
			ans.append([1])
			ans.append([1])
		else:
			ans.append([-1])
	elif A[0] % 2 == 0:
		ans.append([1])
		ans.append([1])
	elif A[1] % 2 == 0:
		ans.append([1])
		ans.append([2])
	else:
		ans.append([2])
		ans.append([1, 2])
for i in range(0, len(ans)):
	print(*ans[i])


import sys
input = sys.stdin.readline
import sys
for i in range(int(input())):
	a = int(input())
	m = list(map(int, input().split()))
	ans1 = []
	ans2 = []
	for j in m:
		if j % 2 == 0:
			ans1.append(j)
			break
		else:
			ans2.append(j)
			if len(ans2) == 2:
				break
	if len(ans1) == 0 and len(ans2) <= 1:
		print(-1)
	elif len(ans1) != 0:
		print(1)
		print(m.index(ans1[0]) + 1)
	else:
		print(2)
		print(m.index(ans2[0]) + 1, end=' ')
		m[m.index(ans2[0])] = -1
		print(m.index(ans2[1]) + 1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	if n == 1 and a[0] % 2 == 1:
		print('-1')
		continue
	aux = -1
	for i in range(n):
		if a[i] % 2 == 0:
			print('1')
			print(str(i + 1))
			break
		elif aux == -1:
			aux = i
		else:
			print('2')
			print(str(aux + 1) + ' ' + str(i + 1))
			break


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if a[0] % 2 == 0:
		print('1 \n1')
	elif n == 1:
		print('-1')
	elif a[1] % 2 == 0:
		print('1\n2')
	else:
		print('2\n1 2')


import sys
import math
import heapq
import collections

def inputnum():
	return int(input())

def inputnums():
	return map(int, input().split())

def inputlist():
	return list(map(int, input().split()))

def inputstring():
	return [x for x in input()]

def inputmatrixchar(rows):
	arr2d = [[j for j in input().strip()] for i in range(rows)]
	return arr2d

def inputmatrixint(rows):
	arr2d = []
	for _ in range(rows):
		arr2d.append([int(i) for i in input().split()])
	return arr2d
t = int(input())
for q in range(t):
	n = inputnum()
	a = inputlist()
	ans = -1
	for i in range(n):
		if a[i] % 2 == 0:
			ans = i + 1
	if ans == -1 and n > 1:
		print(2)
		print(1, 2)
		continue
	if ans != -1:
		print(1)
	print(ans)


n = int(input())
for i in range(n):
	m = int(input())
	a = [int(i) for i in input().split()]
	l = []
	e = 0
	s = []
	for j in range(0, len(a)):
		if a[j] % 2 == 0:
			s.append(j + 1)
			e = e + 1
		else:
			l.append(j + 1)
	if e == 0:
		if len(l) == 1:
			print(-1)
		else:
			print(2)
			print(l[0], l[1])
	else:
		print(1)
		print(s[0])


t = int(input())
for case in range(t):
	n = int(input())
	a = [int(s) for s in input().split(' ')]
	if len(a) == 1 and sum(a) % 2 == 1:
		print(-1)
	elif a[0] % 2 == 0:
		print(1)
		print(1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


import sys
from collections import defaultdict as dd
from collections import deque
from fractions import Fraction as f

def eprint(*args):
	print(*args, file=sys.stderr)
zz = 1
from math import *
import copy
if zz:
	input = sys.stdin.readline
else:
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('all.txt', 'w')

def li():
	return [int(x) for x in input().split()]

def fi():
	return int(input())

def si():
	return list(input().rstrip())

def mi():
	return map(int, input().split())

def gh():
	sys.stdout.flush()

def bo(i):
	return ord(i) - ord('a')
from copy import *
from bisect import *
from itertools import permutations
t = fi()
while t > 0:
	t -= 1
	n = fi()
	a = li()
	d = [[], []]
	for i in range(n):
		d[a[i] % 2].append(i + 1)
	if len(d[0]) > 0:
		print(1)
		print(d[0][0])
	elif len(d[1]) > 1:
		print(2)
		print(d[1][0], d[1][1])
	else:
		print(-1)


from sys import stdin

def main():
	input = lambda : stdin.readline()[:-1]
	T = int(input())
	for _ in [0] * T:
		N = int(input())
		A = map(int, input().split())
		idx = []
		for (i, a) in enumerate(A, start=1):
			if not a % 2:
				print(1)
				print(i)
				break
			else:
				idx.append(i)
				if len(idx) == 2:
					print(2)
					print(*idx)
					break
		else:
			print(-1)
main()


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	odd = [i for i in range(n) if a[i] & 1]
	even = [i for i in range(n) if a[i] % 2 == 0]
	if len(even) == 0 and len(odd) == 1:
		print(-1)
	elif len(even) == 0:
		print(2)
		print(odd[0] + 1, odd[1] + 1)
	else:
		print(1)
		print(even[0] + 1)


import sys, os.path
if os.path.exists('input.txt'):
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')
test = int(input())
for _ in range(test):
	n = int(input())
	arr = input().split()
	flag = 1
	if n > 1:
		for i in range(n):
			if int(arr[i]) % 2 == 0 and flag == 1:
				print(1)
				print(i + 1)
				flag = 0
		if flag != 0:
			print(2)
			print(1, end=' ')
			print(2)
	elif n == 1:
		if int(arr[0]) % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)


from collections import Counter, defaultdict, deque
from math import *
import sys
input = sys.stdin.readline

def solve():
	n = int(input())
	arr = [int(x) for x in input().split()]
	if n == 1 and arr[0] % 2:
		print(-1)
		return
	odd = -1
	for i in range(n):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		if odd != -1:
			print(2)
			print(odd + 1, i + 1)
			return
		odd = i
tt = int(input())
for test in range(tt):
	solve()


from collections import Counter
from collections import defaultdict
import math
t = int(input())
for _ in range(0, t):
	n = int(input())
	a = list(map(int, input().split()))
	c = 0
	ind = -1
	l = list()
	d = defaultdict(lambda : 0)
	for i in range(0, n):
		if a[i] % 2 == 0:
			ind = i
			break
		else:
			l.append(i + 1)
			c = c + 1
	if ind != -1:
		print(1)
		print(ind + 1)
	elif c >= 2:
		print(2)
		print(*l[0:2])
	else:
		print(-1)


from sys import stdin, stdout, setrecursionlimit
input = stdin.readline
for _ in range(int(input())):
	n = int(input())
	a = [int(i) % 2 for i in input().split()]
	if 0 in a:
		print(1)
		print(a.index(0) + 1)
	elif len(a) == 1:
		print(-1)
	else:
		print(2)
		lol = 0
		for i in range(n):
			if a[i] == 1:
				print(i + 1, end=' ')
				lol += 1
			if lol == 2:
				break


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	b = [[], []]
	for i in range(n):
		b[a[i] % 2].append(i)
	if len(b[0]):
		print(1)
		print(b[0][0] + 1)
	elif len(b[1]) > 1:
		print(2)
		print(b[1][0] + 1, b[1][1] + 1)
	else:
		print(-1)


for _ in range(int(input())):
	N = int(input())
	A = list(map(int, input().split(' ')))
	f = 0
	odd = []
	for i in range(N):
		if A[i] % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
		else:
			odd.append(i + 1)
			if len(odd) >= 2:
				print(2)
				print(*odd)
				f = 1
				break
	if f == 0:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	array = [int(x) for x in input().split()]
	odd = -1
	for j in range(n):
		if array[j] % 2 == 0:
			print('1 \n' + str(j + 1))
			break
		elif array[j] % 2 == 1:
			if odd != -1:
				print(f'2 \n{odd} {j + 1}')
				break
			odd = j + 1
	else:
		print(-1)


t = int(input())
i = 0
while i < t:
	n = int(input())
	arr = input().split()
	val = []
	val = [arr.index(x) for x in arr if int(x) % 2 == 0]
	if len(val):
		print('1\n' + str(val[0] + 1))
	elif n > 1:
		print('2\n1 2')
	else:
		print('-1')
	i += 1


def checkbit(n, i):
	return n >> i & 1
k = []
for _ in range(int(input())):
	n = int(input())
	ll = list(map(int, input().split()))
	for i in range(1, 1 << n):
		s = 0
		for j in range(0, 9):
			if checkbit(i, j):
				s += ll[j]
		if s & 1 == 0:
			break
	else:
		print(-1)
		continue
	c = 0
	k = []
	l = 0
	while i:
		if i & 1:
			c += 1
			k.append(l + 1)
		i >>= 1
		l += 1
	print(c)
	for i in k:
		print(i, end=' ')
	print()


for case in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	odd = -1
	for i in range(n):
		if a[i] & 1 and odd == -1:
			odd = i
		elif a[i] & 1:
			print(2)
			print(odd + 1, i + 1)
			break
		else:
			print(1)
			print(i + 1)
			break
	else:
		print(-1)


t = int(input())
for i in range(t):
	input()
	lst = list(map(int, input().split()))
	if len(lst) == 1:
		if lst[0] % 2 == 0:
			print(f'1\n1')
		else:
			print(-1)
	else:
		(firstEven, secondEven) = (False, False)
		if lst[0] % 2 == 0:
			firstEven = True
		if lst[1] % 2 == 0:
			secondEven = True
		if firstEven:
			print(f'1\n1')
		elif secondEven:
			print(f'1\n2')
		else:
			print(f'2\n1 2')


n = int(input())
for t in range(n):
	a = int(input())
	b = list(map(int, input().split()))
	if len(b) == 1:
		if b[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		aux = 0
		aux1 = 0
		for x in range(a):
			if b[x] % 2 == 0:
				print(1)
				print(x + 1)
				aux = 1
				break
		if aux != 1:
			print(2)
			print('1 2')


tc = int(input())
for _ in range(tc):
	n = int(input())
	arr = list(map(int, input().split()))
	evn = 0
	boo = 0
	odd = []
	if len(arr) == 1 and arr[0] % 2 != 0:
		print(-1)
	else:
		for i in range(0, len(arr)):
			if arr[i] % 2 == 0:
				evn += 1
				if evn > 0:
					print(1)
					print(i + 1)
					boo = 1
					break
			else:
				odd.append(i)
				if len(odd) >= 2:
					print(odd[-1] - odd[-2] + 1)
					print(' '.join([str(odd[-2] + 1), str(odd[-1] + 1)]))
					boo = 1
					break
		if boo == 0:
			print(-1)
			break


for t in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	if n == 1 and a[0] % 2:
		print(-1)
	else:
		ans = []
		for (i, x) in enumerate(a):
			if x % 2 == 0:
				print(1)
				print(i + 1)
				break
			else:
				ans.append(i + 1)
				if len(ans) == 2:
					print(2)
					print(*ans)
					break


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	for (i, e) in enumerate(a):
		if e % 2 == 0:
			print(1)
			print(i + 1)
			break
	else:
		if len(a) >= 2:
			print(2)
			print(1, 2)
			continue
		else:
			print(-1)
			continue


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ans = []
	check = False
	for (pos, i) in enumerate(a):
		if i % 2 == 0:
			print(1)
			print(pos + 1)
			check = True
			break
		else:
			ans.append(pos + 1)
			if len(ans) > 1:
				print(2)
				print(*ans, sep=' ')
				check = True
				break
	if not check:
		print(-1)


import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, copy, functools
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20
eps = 1.0 / 10 ** 10
mod = 10 ** 9 + 7
mod2 = 998244353
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]

def LI():
	return list(map(int, sys.stdin.readline().split()))

def LLI():
	return [list(map(int, l.split())) for l in sys.stdin.readlines()]

def LI_():
	return [int(x) - 1 for x in sys.stdin.readline().split()]

def LF():
	return [float(x) for x in sys.stdin.readline().split()]

def LS():
	return sys.stdin.readline().split()

def I():
	return int(sys.stdin.readline())

def F():
	return float(sys.stdin.readline())

def S():
	return input()

def pf(s):
	return print(s, flush=True)

def pe(s):
	return print(str(s), file=sys.stderr)

def JA(a, sep):
	return sep.join(map(str, a))

def JAA(a, s, t):
	return s.join((t.join(map(str, b)) for b in a))

def IF(c, t, f):
	return t if c else f

def main():
	t = I()
	rr = []
	for _ in range(t):
		n = I()
		a = LI()
		if n == 1 and a[0] % 2 == 1:
			rr.append(-1)
		else:
			ok = False
			for i in range(n):
				if a[i] % 2 == 0:
					rr.append(1)
					rr.append(i + 1)
					ok = True
					break
			if not ok:
				rr.append(2)
				rr.append('1 2')
	return JA(rr, '\n')
print(main())


def evenSum(l):
	for i in range(len(l)):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		if i > 0:
			print(2)
			print(i, i + 1)
			return
	print(-1)
	return
n = int(input())
for i in range(n):
	_ = input()
	l = list(map(int, input().split()))
	evenSum(l)


import sys
input = sys.stdin.readline
t = int(input())
for tests in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	for i in range(n):
		if A[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
	else:
		ANS = []
		for i in range(n):
			if A[i] % 2 == 1:
				ANS.append(i + 1)
			if len(ANS) == 2:
				print(2)
				print(*ANS)
				break
		else:
			print(-1)


m = int(input())
l = []
for _ in range(m):
	t = int(input())
	a = list(map(int, input().split()))
	o = []
	for i in range(t):
		if a[i] % 2 == 0:
			l.append(1)
			l.append(i + 1)
			break
		else:
			o.append(str(i + 1))
			if len(o) == 2:
				l.append(len(o))
				l.append(' '.join(o))
				break
	else:
		l.append(-1)
for i in l:
	print(i)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	l1 = []
	l2 = []
	for i in range(n):
		if l[i] % 2 == 0:
			l2.append(i + 1)
		else:
			l1.append(i + 1)
	(m, n) = (len(l1), len(l2))
	if n == 0 and m <= 1:
		print(-1)
	elif n >= 1:
		print(1)
		print(l2[0])
	elif m > 1:
		print(2)
		print(l1[0], l1[1])


t = int(input())
while t:
	n = int(input())
	l = list(map(int, input().split()))
	ind = -1
	flag = False
	for i in range(n):
		if l[i] % 2 == 0:
			flag = True
			ind = i
			break
	if flag:
		print('1')
		print(ind + 1)
	elif n > 1:
		print('2')
		print('1 2')
	else:
		print('-1')
	t -= 1


t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	if sum(l) % 2 == 0:
		print(n)
		for i in range(1, n + 1):
			print(i, end=' ')
		print()
	elif n == 1:
		print('-1')
	else:
		for i in range(n):
			if l[i] % 2 == 1:
				pos = i
		print(n - 1)
		for i in range(n):
			if i == pos:
				pass
			else:
				print(i + 1, end=' ')
		print()


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	e = 0
	o = 0
	for j in range(n):
		if a[j] % 2 == 0:
			e = e + 1
		else:
			o = o + 1
	if e > 0:
		for j in range(n):
			if a[j] % 2 == 0:
				print(1)
				print(j + 1)
				break
	elif o > 1:
		count = 0
		print(2)
		for j in range(n):
			if a[j] % 2 == 1 and count < 2:
				print(j + 1, end=' ')
				count = count + 1
			if count == 2:
				break
	else:
		print(-1)


t = int(input())
while t:
	t -= 1
	n = int(input())
	mas = [int(i) for i in input().split()]
	ans = -1
	for i in range(len(mas)):
		if mas[i] % 2 == 0:
			ans = i + 1
			break
	if ans == -1:
		if n > 1:
			print(2)
			print(1, 2, sep=' ')
		else:
			print(-1)
	else:
		print(1)
		print(ans)


t = int(input())
while t > 0:
	n = int(input())
	a = [int(s) for s in input().split()]
	e = []
	o = []
	for i in range(0, n):
		if a[i] % 2 == 0:
			e.append(i + 1)
		else:
			o.append(i + 1)
	if len(e) >= 1:
		print('1')
		print(e[0])
	elif len(o) >= 2:
		print('2')
		print(o[0], o[1])
	elif len(e) == 0 and len(o) == 1:
		print('-1')
	elif len(e) == 0 and len(o) % 2 == 0:
		print('2')
		print(o[0], o[1])
	t -= 1


def evenSubset(nums):
	if len(nums) == 1 and nums[0] % 2 != 0:
		print(-1)
	elif nums[0] % 2 == 0:
		print(1)
		print(1)
	elif nums[0] % 2 != 0 and nums[1] % 2 != 0:
		print(2)
		print(str(1) + ' ' + str(2))
	else:
		print(1)
		print(2)
for _ in range(int(input())):
	n = int(input())
	nums = list(map(int, input().split()))
	evenSubset(nums)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	(even, odd) = (0, 0)
	elu = []
	for i in range(len(l)):
		if l[i] % 2 == 1:
			odd += 1
			elu.append(i)
			if odd == 2:
				break
		else:
			even += 1
			ind = i
			break
	if odd == 2 or even == 1:
		if even:
			print(1)
			print(ind + 1)
		else:
			print(2)
			print(elu[0] + 1, elu[1] + 1)
	else:
		print(-1)


for i in range(int(input())):
	n = int(input())
	x = [int(x) for x in input().split()]
	if len(x) == 1 and x[0] % 2 != 0:
		print(-1)
	elif len(x) == 1 and x[0] % 2 == 0:
		print(1)
		print(1)
	else:
		for j in range(n):
			if x[j] % 2 == 0:
				print(1)
				print(j + 1)
				break
			elif (x[j] + x[j + 1]) % 2 == 0:
				print(2)
				print(j + 1, j + 2)
				break


t = int(input())
for y in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ct = 0
	x = -1
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			ct += 1
			if ct == 1:
				x = i
			if ct == 2:
				print(2)
				print(x + 1, i + 1)
				break
	else:
		print(-1)


def check(n, a):
	odd_set = []
	even_set = []
	tot = 0
	for i in range(n):
		if a[i] % 2 == 0:
			even_set.append(i + 1)
			return even_set
		else:
			tot += a[i]
			odd_set.append(i + 1)
			if tot % 2 == 0:
				return odd_set
	return -1
for T in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	res = check(n, a)
	if res == -1:
		print('-1')
	else:
		print(len(res))
		print(' '.join(map(str, res)))


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	flag = 0
	aux = 0
	soma = 0
	par = 0
	lista = []
	lista2 = []
	for i in range(n):
		if a[i] % 2 == 0:
			flag = 1
			lista.append(i + 1)
			par = 1
		elif par == 0:
			flag = 1
			soma = soma + a[i]
			if soma % 2 == 0:
				lista2.append(aux + 1)
				lista2.append(i + 1)
			aux = i
	if len(lista) == 0 and len(lista2) == 0:
		print(-1)
	elif par == 1:
		print(len(lista))
		for i in range(len(lista)):
			print(lista[i], end=' ')
		print()
	else:
		print(len(lista2))
		for i in range(len(lista2)):
			print(lista2[i], end=' ')
		print()


t = int(input())
for i in range(t):
	a = []
	n = int(input())
	l = input().split()
	count = 0
	s = ''
	for k in range(n):
		if len(l) == 1 and int(l[0]) % 2 != 0:
			print(-1)
			break
		if int(l[k]) % 2 == 0:
			print(1)
			print(k + 1)
			break
		elif int(l[k]) % 2 != 0:
			count += 1
			if count <= 2:
				a.append(k + 1)
				if count == 2:
					print(count)
					for m in a:
						s += str(m) + ' '
					print(s)
					break


from pprint import pprint
q = int(input())
for _ in range(q):
	n = int(input())
	dat = list(map(int, input().split()))
	s = sum(dat)
	oddnum = 0
	for i in range(len(dat)):
		if dat[i] % 2 == 1:
			oddnum += 1
	res = []
	if oddnum == 0:
		print(n)
		res = []
		for i in range(n):
			res.append(i + 1)
		print(' '.join(list(map(str, res))))
	elif n == 1:
		print(-1)
	else:
		a = False
		for i in range(n):
			if dat[i] % 2 == 1 and a is False and (s % 2 == 1):
				a = True
				continue
			else:
				res.append(i + 1)
		print(len(res))
		print(' '.join(list(map(str, res))))


for i in range(int(input())):
	t = int(input())
	l = [int(x) for x in input().split()]
	n = []
	ans = 0
	s = ''
	count1 = 0
	for j in range(t):
		if l[j] % 2 == 0:
			ind = j
			ans = 1
			answer = 12
			break
		if l[j] % 2 != 0:
			count1 = count1 + 1
			aa = j + 1
			s = s + str(aa) + ' '
			if count1 == 2:
				ans = 1
				answer = 13
				break
	if ans == 1:
		if answer == 12:
			print(1)
			print(ind + 1)
		if answer == 13:
			print(2)
			print(s)
	else:
		print(-1)


t = int(input())
for _ in range(t):
	(n, a) = (int(input()), [int(i) for i in input().split()][:2])
	res = list(range(1, len(a) + 1)) if sum(a) & 1 == 0 else [next((i + 1 for (i, e) in enumerate(a) if e & 1 == 0), -1)]
	if res != [-1]:
		print(len(res))
	print(*res)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	if n == 1 and arr[0] & 1:
		print(-1)
		continue
	fl = False
	for i in range(n):
		if not arr[i] & 1:
			fl = True
			print(1)
			print(i + 1)
			break
	if fl:
		continue
	print(2)
	print(1, 2)


def f():
	n = int(input())
	A = [int(s) for s in input().split()]
	if n == 1:
		if A[0] % 2:
			print(-1)
			return
	for (i, a) in enumerate(A):
		if not a % 2:
			print(1)
			print(i + 1)
			return
	c = 0
	ans = []
	for (i, a) in enumerate(A):
		if a % 2:
			ans.append(i + 1)
			c += 1
			if c == 2:
				print(2)
				print(' '.join((str(num) for num in ans)))
				return
T = int(input())
for t in range(T):
	f()


t = int(input())
count = 0
ans = ''
while count < t:
	i = int(input())
	a = input()
	eve = [a for (a, b) in zip(range(1, i + 1), a.split()) if int(b) % 2 == 0]
	if len(eve) > 0:
		ans += str(1) + '\n' + str(eve[0]) + '\n'
	elif i == 1:
		ans += str(-1) + '\n'
	else:
		ans += str(2) + '\n' + str(1) + ' ' + str(2) + '\n'
	count += 1
print(ans)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	j = []
	b = 0
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			b = 1
			break
		else:
			j.append(i + 1)
			if len(j) == 2:
				print(2)
				print(j[0], j[1])
				b = 1
				break
	if b == 0:
		print(-1)


t = int(input())
for i in range(t):
	ls = []
	n = int(input())
	arr = list(map(int, input().split()))
	if len(arr) == 1:
		if arr[0] % 2 == 0:
			print('1')
			print('1')
		else:
			print('-1')
	else:
		for i in range(len(arr)):
			if arr[i] % 2 == 0:
				print('1')
				print(i + 1)
				break
			elif arr[i] % 2 != 0:
				ls.append(i + 1)
				if len(ls) == 2:
					print('2')
					print(*ls)
					break


def main():
	n = int(input())
	s = list(map(int, input().split()))
	t = []
	for i in range(n):
		if s[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		else:
			t.append(i + 1)
			if len(t) == 2:
				print(2)
				print(str(t).replace('[', '').replace(']', '').replace(',', ''))
				return
	print(-1)
for _ in range(int(input())):
	main()


def k(x):
	return int(x) % 2
for _ in range(int(input())):
	n = int(input())
	l = list(map(k, input().split()))
	if 0 in l:
		print(1)
		print(l.index(0) + 1)
	elif n >= 2:
		print(2)
		print(1, 2)
	else:
		print(-1)


t = int(input())

def solve():
	n = int(input())
	l = list(map(int, input().split()))
	if len(l) == 1 and l[0] % 2:
		print(-1)
		return
	for (idx, elem) in enumerate(l):
		if elem % 2 == 0:
			print(1)
			print(idx + 1)
			return
	print(2)
	print(1, 2)
	return
for _ in range(t):
	solve()


for _ in range(int(input())):
	n = int(input())
	s = input().split()
	j = n
	for i in range(0, n):
		if int(s[i]) % 2 == 0:
			j = i
			break
	if j != n:
		print(1)
		print(j + 1)
	elif n == 1:
		print(-1, sep='')
	else:
		print(2)
		print(1, 2)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	i = 0
	for k in range(1, n + 1):
		if not a[k - 1] % 2:
			print(1)
			print(k)
			break
		elif i:
			print(2)
			print(i, k)
			break
		else:
			i = k
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	if n == 1:
		x = int(input())
		if x % 2 == 0:
			print('1', '1', sep='\n')
		else:
			print('-1')
	else:
		x = [int(tmp) for tmp in input().split()]
		if (x[0] + x[1]) % 2 == 0:
			print('2', '1 2', sep='\n')
		elif x[0] % 2 == 0:
			print('1', '1', sep='\n')
		elif x[1] % 2 == 0:
			print('1', '2', sep='\n')


import os
import sys
from io import BytesIO, IOBase
import heapq as h
from bisect import bisect_left, bisect_right
from types import GeneratorType
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		import os
		self.os = os
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = self.os.read(self._fd, max(self.os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = self.os.read(self._fd, max(self.os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			self.os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
from collections import defaultdict as dd, deque as dq
import math, string

def getInts():
	return [int(s) for s in input().split()]

def getInt():
	return int(input())

def getStrs():
	return [s for s in input().split()]

def getStr():
	return input()

def listStr():
	return list(input())
MOD = 10 ** 9 + 7

def solve():
	N = getInt()
	A = getInts()
	if N == 1 and A[0] % 2 == 1:
		print(-1)
		return
	if A[0] % 2 == 0:
		print(1)
		print(1)
		return
	if A[1] % 2 == 0:
		print(1)
		print(2)
		return
	print(2)
	print(1, 2)
	return
for _ in range(getInt()):
	solve()


def solve(A):
	for (i, a) in enumerate(A):
		if a % 2 == 0:
			return '1\n%d' % (i + 1)
	if len(A) == 1:
		return -1
	return '2\n%d %d' % (1, 2)
n = int(input())
for i in range(n):
	input()
	a = list(map(int, input().split()))
	print(solve(a))


test_cases = int(input())
for i in range(test_cases):
	size = int(input())
	arr = list(map(int, input().split(' ')))
	evens = [(arr[i], i + 1) for i in range(len(arr)) if arr[i] % 2 == 0]
	odds = [(arr[i], i + 1) for i in range(len(arr)) if arr[i] % 2 != 0]
	if len(evens) == 0 and len(odds) <= 1:
		print('-1')
	elif len(evens) >= 1:
		print('1')
		print(evens[0][1])
	else:
		print('2')
		print(odds[0][1], odds[1][1])


t = int(input())
for i in range(t):
	count = int(0)
	n = int(input())
	arr = list(map(int, input().strip().split()))[:n]
	for j in range(n):
		if arr[j] % 2 == 0:
			count = j + 1
	if count:
		print('1\n', count)
	elif n == 1:
		print('-1')
	else:
		print('2\n1 2\n')


import bisect
import heapq
import math
import random
import sys
from collections import Counter, defaultdict, deque
from decimal import ROUND_CEILING, ROUND_HALF_UP, Decimal
from functools import lru_cache, reduce
from itertools import combinations, combinations_with_replacement, product, permutations
from operator import add, mul, sub
sys.setrecursionlimit(100000)
input = sys.stdin.readline
INF = 2 ** 62 - 1

def read_int():
	return int(input())

def read_int_n():
	return list(map(int, input().split()))

def read_float():
	return float(input())

def read_float_n():
	return list(map(float, input().split()))

def read_str():
	return input().strip()

def read_str_n():
	return list(map(str, input().split()))

def error_print(*args):
	print(*args, file=sys.stderr)

def mt(f):
	import time

	def wrap(*args, **kwargs):
		s = time.time()
		ret = f(*args, **kwargs)
		e = time.time()
		error_print(e - s, 'sec')
		return ret
	return wrap

@mt
def slv(N, A):
	if N == 1:
		if A[0] % 2 != 0:
			return -1
		else:
			return '1\n1'
	elif A[0] % 2 != 0 and A[1] % 2 != 0:
		return '2\n1 2'
	elif A[0] % 2 == 0:
		return '1\n1'
	else:
		return '1\n2'

def main():
	T = read_int()
	for _ in range(T):
		N = read_int()
		A = read_int_n()
		print(slv(N, A))
main()


t = int(input())
for test in range(t):
	n = int(input())
	A = [int(x) for x in input().split()]
	if n == 1 and len(A) == 1 and (A[0] % 2 == 1):
		print(-1)
	else:
		B = []
		for i in range(n):
			if A[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			else:
				B.append(i)
			if len(B) == 2:
				print(2)
				print(B[0] + 1, B[1] + 1)
				break


for _ in range(int(input())):
	n = int(input())
	s = input().split()
	ind = 1
	ganjil = 0
	genap = 0
	tem = False
	gj = ''
	c = ''
	for i in s:
		if int(i) % 2 == 0:
			gj = ind
			genap += 1
		else:
			c += str(ind)
			ganjil += 1
			if len(c) < 3:
				c += ' '
			else:
				break
		ind += 1
	if ganjil == 1 and genap == 0:
		print(-1)
	elif genap > 0:
		print(1)
		print(gj)
	else:
		print(2)
		print(c)


t = int(input())
for i in range(t):
	(N,) = map(int, input().split())
	X = list(map(int, input().split()))
	c = 0
	for i in range(N):
		if X[i] % 2:
			c += 1
			if c == 2:
				rs = [1, 2]
				break
		else:
			rs = [i + 1]
			break
	else:
		print(-1)
		continue
	print(len(rs))
	print(*rs)


T = int(input())
for test in range(T):
	n = int(input())
	lst = list(map(int, input().split()))
	odd = 0
	even = 0
	o = []
	e = []
	for i in range(len(lst)):
		if lst[i] % 2 == 1:
			odd += 1
			o.append(i)
		else:
			even += 1
			e.append(i)
	if odd >= 2:
		print(2)
		print(o[0] + 1, end=' ')
		print(o[1] + 1)
	elif even != 0:
		print(1)
		print(e[0] + 1)
	else:
		print(-1)


import math, sys
from collections import Counter, defaultdict, deque
from sys import stdin, stdout
input = stdin.readline
li = lambda : list(map(int, input().split()))

def case():
	n = int(input())
	a = li()
	if n == 1:
		if a[0] % 2 != 0:
			print(-1)
		else:
			print(1)
			print(1)
	elif a[0] % 2 == 0:
		print(1)
		print(1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)
for _ in range(int(input())):
	case()


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	even = []
	odd = []
	flag = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
		else:
			odd.append(i)
	if flag == 0:
		if n >= 2:
			print(2)
			print(odd.pop() + 1, odd.pop() + 1)
		else:
			print(-1)


def solve():
	n = int(input())
	arr = list(map(int, input().split()))
	c = -1
	for i in range(n):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		elif c == -1:
			c = i + 1
		else:
			print(2)
			print(c, i + 1)
			return
	print(-1)
for t in range(int(input())):
	solve()


t = int(input())
for j in range(t):
	n = int(input())
	conjunto = [int(i) for i in input().split()]
	par = []
	impar = []
	for i in range(n):
		if conjunto[i] % 2 == 0:
			par.append([conjunto[i], i + 1])
			break
		else:
			impar.append([conjunto[i], i + 1])
			if len(impar) == 2:
				break
	if len(par) == 1:
		print(1)
		print(par[0][1])
	elif len(impar) == 2:
		print(2)
		print(impar[0][1], impar[1][1])
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	s = 0
	idx = -1
	for i in range(n):
		s += l[i]
		if l[i] % 2 == 1:
			idx = i
	if s % 2 == 0:
		res = list(range(1, n + 1))
	else:
		res = list(range(1, idx + 1)) + list(range(idx + 2, n + 1))
	if len(res):
		print(len(res))
		print(' '.join(map(str, res)))
	else:
		print(-1)


import sys
input = sys.stdin.readline
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	ans = []
	flag = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
		else:
			ans.append(i + 1)
			if len(ans) == 2:
				print(2)
				print(*ans)
				flag = 1
				break
	if flag == 0:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	nums = list(map(int, input().split()))
	if n == 1:
		if nums[0] % 2 != 0:
			print(-1)
			continue
	odds = []
	even = []
	for i in range(n):
		if nums[i] % 2:
			odds.append(i + 1)
		else:
			even.append(i + 1)
	if len(even) > 0:
		print(1)
		print(even[0])
		continue
	else:
		print(2)
		print(odds[0], odds[1])


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	if n == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		odd_count = 0
		even_count = 0
		for i in a:
			if i % 2 == 1:
				odd_count += 1
			else:
				even_count += 1
		if even_count == 0:
			print(2)
			print(1, 2)
		else:
			i = 0
			while a[i] % 2 != 0:
				i += 1
			else:
				print(1)
				print(i + 1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	res = 0
	done = False
	for i in range(n):
		s = 0
		sub = []
		for j in range(i, n):
			s += arr[j]
			sub.append(j + 1)
			if s % 2 == 0:
				done = True
				break
		if done:
			break
	if done:
		print(len(sub))
		print(*sub)
	else:
		print(-1)


t = int(input())
for case in range(t):
	flag = 0
	n = int(input())
	arr = [int(x) for x in input().split()]
	store = []
	for (index, num) in enumerate(arr):
		if num % 2 == 0:
			print(1)
			print(index + 1)
			flag = 1
			break
		if num % 2 != 0:
			store.append(index)
			if len(store) == 2:
				print(2)
				print(store[0] + 1, store[1] + 1)
				flag = 1
				break
	if flag == 0:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	count = 0
	k = 1
	b = []
	f = 0
	for j in a:
		if j % 2 == 0:
			print(1)
			print(k)
			f = 1
		else:
			count += 1
			b.append(k)
			if count == 2:
				print(2)
				for z in b:
					print(z, end=' ')
				print('')
				f = 1
		k += 1
		if f == 1:
			break
	if f == 0:
		print(-1)


t = int(input())
while t > 0:
	n = int(input())
	arr = [int(x) for x in input().split(' ')]
	i = 0
	while i < n:
		if arr[i] % 2 == 0:
			break
		i += 1
	if i == n:
		if n == 1:
			print(-1)
		else:
			print('2')
			print('1 2')
	else:
		print(1)
		print(i + 1)
	t -= 1


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	z = []
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			z = []
			break
		else:
			z.append(i + 1)
	if len(z) >= 2:
		print(2)
		print(z[0], z[1])
	elif len(z) != 0:
		print(-1)


def solve():
	t = int(input())
	a = list(map(int, input().split()))
	if len(a) == 1 and a[0] % 2 == 1:
		print('-1')
	else:
		for (i, x) in enumerate(a):
			if x % 2 == 0:
				print(1)
				print(i + 1)
				break
		else:
			print(2)
			print(1, 2)
n = int(input())
for _ in range(n):
	solve()


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	f = 0
	o1 = -1
	o2 = -1
	for i in range(n):
		if l[i] % 2 == 0:
			print('1')
			print(i + 1)
			f = 1
			break
		elif o1 == -1:
			o1 = i + 1
		elif o2 == -1:
			o2 = i + 1
			break
	if f == 0:
		if o1 == -1 or o2 == -1:
			print('-1')
		else:
			print('2')
			print(o1, o2)


t = input()
ns = []
nums = []
for i in range(int(t)):
	ns.append(input())
	input_list = input()
	nums.append(input_list.split())
for i in range(int(t)):
	u = 0
	l = 0
	if int(ns[i]) == 1:
		if int(nums[i][0]) % 2 == 1:
			print('-1')
		else:
			print('1' + ' 1')
	else:
		if u == 0:
			for j in range(int(ns[i])):
				if u == 0:
					if int(nums[i][j]) % 2 == 0:
						print(1)
						print(j + 1)
						u += 1
		if u == 0:
			for j in range(int(ns[i])):
				if l == 0:
					if int(nums[i][j]) % 2 == 1:
						for k in range(int(ns[i]) - j - 1):
							u = 0
							if int(nums[i][k + j + 1]) % 2 == 1:
								print('2')
								print(str(j + 1) + ' ' + str(k + 2))
								l = 1
								break


for _ in range(int(input())):
	input()
	ls = list(map(int, input().split()))
	c = 0
	if len(ls) == 1 and ls[0] % 2 != 0:
		print(-1)
	else:
		for i in ls:
			if i % 2 == 0:
				print(1)
				c = 1
				print(ls.index(i) + 1)
				break
		if c == 0:
			print(2)
			print(1, 2)


n = int(input())
for _ in range(n):
	m = int(input())
	values = [int(x) for x in input().split()]
	if m == 1:
		if values[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
		continue
	(v1, v2) = (values[0], values[1])
	v1_even = v1 % 2 == 0
	v2_even = v2 % 2 == 0
	if v1_even:
		print(1)
		print(1)
	elif v2_even:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


for i in range(int(input())):
	input()
	l = list(map(int, input().split()))
	index = []
	num = 0
	sum = 0
	stop = False
	for i in range(len(l)):
		if l[i] % 2 == 0:
			print('1')
			print(str(i + 1))
			stop = True
			break
	if stop:
		continue
	for i in range(len(l)):
		num += 1
		index.append(i + 1)
		sum += l[i]
		if sum % 2 == 0:
			break
	if num != 1:
		print(str(num))
		for i in index:
			print(str(i), end=' ')
		print()
	else:
		print('-1')


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		if l[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif l[0] % 2 == 0:
		print(1)
		print(1)
	elif l[1] % 2 == 0:
		print(1)
		print(2)
	elif l[0] % 2 == 1 and l[1] % 2 == 1:
		print(2)
		print(1, end=' ')
		print(2, end=' ')
	else:
		print(-1)


t = int(input())
result = ''
for i in range(t):
	n = int(input())
	a = input().split()
	z = 0
	for j in range(n):
		a[j] = int(a[j])
		if a[j] % 2 == 0:
			z = j + 1
			break
	if z > 0:
		result += '1\n' + str(z) + '\n'
	elif n == 1:
		result += '-1\n'
	else:
		result += '2\n1 2\n'
print(result, end='')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	odd = []
	even = []
	for i in range(n):
		if a[i] & 1 == 1:
			odd.append(i + 1)
		else:
			even.append(i + 1)
	n1 = len(even)
	n2 = len(odd)
	if n1 > 0:
		print(1)
		print(even[0])
	elif n2 > 1:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)


for _ in range(int(input())):
	o = []
	e = []
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(n):
		if a[i] % 2 == 0:
			e.append(i)
		else:
			o.append(i)
	if len(e) != 0:
		ans = ''
		print(len(e))
		for i in e:
			ans += ' ' + str(i + 1)
		print(ans)
	elif len(o) > 1:
		print(2)
		print(str(o[0] + 1) + ' ' + str(o[1] + 1))
	else:
		print(-1)


t = int(input())
while t:
	t = t - 1
	n = int(input())
	arr = list(map(int, input().split()))
	o = 0
	for i in range(n):
		if arr[i] % 2 == 0:
			print('1')
			print(i + 1)
			break
		else:
			o = o + 1
			if o % 2 == 0:
				print('2')
				print('1 2')
				break
			elif n == 1 and o % 2 == 1:
				print('-1')
				break


for i in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	(even, odd1, odd2) = (-1, -1, -1)
	for j in range(n):
		if arr[j] % 2 == 0:
			even = j
			break
		elif odd1 == -1:
			odd1 = j
		else:
			odd2 = j
			break
	if even != -1:
		print(1)
		print(even + 1)
	elif odd1 != -1 and odd2 != -1:
		print(2)
		print(odd1 + 1, odd2 + 1)
	else:
		print(-1)


def count(l):
	o = 0
	for i in range(len(l)):
		if l[i] % 2 != 0:
			o += 1
	return o
for v in range(int(input())):
	n = int(input())
	x = [int(q) for q in input().split()]
	odd = count(x)
	even = n - odd
	if even != 0:
		g = 0
		for i in range(len(x)):
			if x[i] % 2 == 0:
				g = i + 1
				break
		print(1)
		print(g)
	elif odd == 1:
		print(-1)
	else:
		print(2)
		print(1, 2)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if a[0] % 2 == 0:
		print(1)
		print(1)
		continue
	if n == 1:
		print(-1)
		continue
	if sum(a) % 2 == 1:
		print(n - 1)
		print(' '.join([str(i + 1) for i in range(1, n)]))
	else:
		print(n)
		print(' '.join([str(i + 1) for i in range(n)]))


t = int(input())

def helper(n, curr_sum, choosen):
	global res
	if len(res) != 0:
		return
	elif curr_sum != 0 and curr_sum % 2 == 0:
		res = choosen[:][::-1]
		return
	elif n == 0:
		return
	else:
		choosen.append(n)
		helper(n - 1, curr_sum + arr[n - 1], choosen)
		choosen.pop()
		helper(n - 1, curr_sum, choosen)
while t != 0:
	n = int(input())
	arr = list(map(int, input().split()))
	res = []
	helper(n, 0, [])
	if len(res) == 0:
		print(-1)
	else:
		print(len(res))
		for i in range(len(res) - 1):
			print(res[i], end=' ')
		print(res[-1])
	t -= 1


t = int(input())
for _ in range(t):
	n = int(input())
	L = [int(i) for i in input().split()]
	odd_index = 0
	flag = 1
	for i in range(len(L)):
		if L[i] % 2 == 1:
			if odd_index == 0:
				odd_index = i + 1
			else:
				print(2)
				print(odd_index, i + 1)
				flag = 0
				break
		else:
			print(1)
			print(i + 1)
			flag = 0
			break
	if flag:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	flag = 0
	li = list(map(int, input().strip().split()))
	if len(li) == 1 and li[0] % 2 == 1:
		print('-1')
	else:
		for i in range(n):
			if li[i] % 2 == 0:
				print(1)
				print(i + 1)
				flag = 1
				break
		if flag == 0:
			print(2)
			print('1 2')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ans = -1
	odd = []
	for i in range(n):
		if a[i] % 2 == 0:
			ans = i + 1
		else:
			odd.append(i + 1)
	if len(odd) >= 2:
		print(f'2\n{odd[0]} {odd[1]}')
	else:
		if ans != -1:
			print('1')
		print(ans)


import sys

def main():
	inp = sys.stdin.read().strip().split('\n')[2::2]
	out = []
	for s in inp:
		(a, *b) = map(int, s.split()[:2])
		if not a % 2:
			out.append('1\n1')
		elif not b:
			out.append('-1')
		elif not b[0] % 2:
			out.append('1\n2')
		else:
			out.append('2\n1 2')
	return out
print(*main(), sep='\n')


def go(b):
	odd = -1
	for i in range(len(b)):
		if b[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		elif odd == -1:
			odd = i + 1
		else:
			print(2)
			print(' '.join((str(j) for j in [odd, i + 1])))
			return
	print(-1)
n = int(input())
for t in range(n):
	c = int(input())
	b = list(map(int, input().split(' ')))
	go(b)


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	if n == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		found = False
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				found = True
				break
		if not found:
			print(2)
			print(1, 2)


t = int(input())
for i in range(t):
	n = int(input())
	l = [int(i) for i in input().split()]
	even = -1
	for i in range(n):
		if l[i] % 2 == 0:
			even = i + 1
			break
	if len(l) == 1 and l[0] % 2 == 1:
		print(-1)
	elif len(l) >= 1 and even == -1:
		print(2)
		print(1, 2)
	else:
		print(1)
		print(even)


t = int(input())
while t != 0:
	n = int(input())
	l = [int(i) for i in input().split()]
	if n == 1 and l[0] % 2 == 1:
		print(-1)
	elif l[0] % 2 == 1 and l[1] % 2 == 1:
		print(2)
		print('1 2')
	elif l[0] % 2 == 0:
		print(1)
		print(1)
	else:
		print(1)
		print(2)
	t = t - 1


t = int(input())
for you in range(t):
	n = int(input())
	l = input().split()
	li = [int(i) for i in l]
	if n == 1 and li[0] % 2 == 1:
		print(-1)
	else:
		set = 0
		for i in range(n):
			if li[i] % 2 == 0:
				set = 1
				break
		if set == 1:
			print(1)
			print(i + 1)
		else:
			print(2)
			print(1, 2)


t = int(input().strip())
for p in range(t):
	n = int(input().strip())
	l = list(map(int, input().strip().split()))
	a = b = c = 0
	for i in range(1, n + 1):
		if l[i - 1] % 2 == 0:
			a = i
		elif not b:
			b = i
		elif not c:
			c = i
	if a:
		print(1)
		print(a)
	elif b and c:
		print(2)
		print(b, c)
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	flag = 0
	id = []
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
		else:
			id.append(i + 1)
			if len(id) == 2:
				print(2)
				print(*id)
				flag = 1
				break
	if flag:
		continue
	else:
		print(-1)


from bisect import bisect_left as bl
from bisect import bisect_right as br
import heapq
import math
from collections import *
from functools import reduce, cmp_to_key
import sys
input = sys.stdin.readline
M = mod = 10 ** 9 + 7

def factors(n):
	return sorted(set(reduce(list.__add__, ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0))))

def inv_mod(n):
	return pow(n, mod - 2, mod)

def li():
	return [int(i) for i in input().rstrip('\n').split()]

def st():
	return input().rstrip('\n')

def val():
	return int(input().rstrip('\n'))

def li2():
	return [i for i in input().rstrip('\n').split(' ')]

def li3():
	return [int(i) for i in input().rstrip('\n')]
for _ in range(val()):
	n = val()
	a = li()
	if len(a) == 1 and a[0] & 1:
		print(-1)
		continue
	if not a[0] & 1:
		print(1)
		print(1)
	elif not a[1] & 1:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


t = int(input())
while t:
	t = t - 1
	elem = int(input())
	lis = []
	lis = list(map(int, input().split()))
	if elem == 1:
		if lis[0] % 2 == 0:
			print('1')
			print('1')
		else:
			print('-1')
	else:
		x = [i for i in lis if i % 2 == 0]
		if len(x):
			print('1')
			print(lis.index(x[0]) + 1)
		else:
			print('2')
			print('1 2')


t = int(input())
for tt in range(t):
	n = int(input())
	a = input().split(' ')
	for x in range(n):
		a[x] = int(a[x])
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif a[0] % 2 == 0:
		print(1)
		print(1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


for _ in range(int(input())):
	n = int(input())
	a = tuple(map(int, input().split()))
	ok = False
	odd = []
	for (i, ai) in enumerate(a):
		if ai % 2 == 0:
			print(1)
			print(i + 1)
			ok = True
			break
		else:
			odd.append(i + 1)
			if len(odd) == 2:
				ok = True
				print(2)
				print(odd[0], odd[1])
				break
	if not ok:
		print(-1)


def I():
	return list(map(int, input().split()))

def sieve(n):
	a = [1] * n
	for i in range(2, n):
		if a[i]:
			for j in range(i * i, n, i):
				a[j] = 0
	return a
for __ in range(int(input())):
	n = int(input())
	arr = I()
	odd = 0
	even = 0
	os = []
	(oidx1, oidx2, eidx) = (-1, -1, 1)
	for i in range(n):
		if arr[i] % 2:
			odd += 1
			os.append(i + 1)
		else:
			even += 1
			eidx = i
			break
	if even > 0:
		print(1)
		print(eidx + 1)
	elif odd >= 2:
		print(2)
		print(os[0], os[1])
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	flag = False
	odd_count = 0
	odd_index = -1
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = True
			break
		else:
			odd_count += 1
			if odd_count == 2:
				print(2)
				print(odd_index, i + 1)
				flag = True
				break
			odd_index = i + 1
	if not flag:
		print('-1')


t = int(input())
for _ in range(0, t):
	n = int(input())
	aa = [int(i) % 2 for i in input().split()]
	if 0 in aa:
		print(1)
		print(aa.index(0) + 1)
	elif aa.count(1) >= 2:
		ans = []
		for i in range(0, len(aa)):
			if aa[i] == 1:
				ans.append(i + 1)
			if len(ans) == 2:
				break
		print(2)
		print(*ans)
	else:
		print(-1)


total = int(input())
for i in range(total):
	is_odd = False
	o = 0
	is_one_not_odd = False
	ono = 0
	is_two_not_odd = False
	tno = 0
	elem = int(input())
	d = input().split()
	data = []
	for el in d:
		data.append(int(el))
	for el in range(len(data)):
		if data[el] % 2 == 0:
			is_odd = True
			o = el + 1
		elif not is_one_not_odd and data[el] % 2 == 1:
			is_one_not_odd = True
			ono = el + 1
		elif is_one_not_odd and data[el] % 2 == 1:
			is_two_not_odd = True
			tno = el + 1
	if is_odd:
		print(1)
		print(o)
	elif is_two_not_odd:
		print(2)
		print(ono, tno)
	else:
		print(-1)


n = int(input())
for _ in range(n):
	input()
	flag = False
	ar = [int(i) for i in input().split()]
	lastI = int(0)
	for i in range(len(ar)):
		if ar[i] % 2 == 0:
			print(f'1\n{i + 1}')
			flag = True
			break
		elif lastI == 1:
			print(f'{i - lastI + 2}\n{lastI} {i + 1}')
			flag = True
			break
		else:
			lastI += 1
	if not flag:
		print('-1')


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	(oc, ec) = ([], 0)
	for i in range(n):
		if not arr[i] & 1:
			ec += 1
			print(1)
			print(i + 1)
			break
		else:
			oc.append(i + 1)
			if len(oc) > 1:
				print(2)
				print(*oc[:2])
				break
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if sum(a) % 2 == 0:
		print(n)
		print(*[x for x in range(1, n + 1)])
	else:
		can = False
		for i in range(n - 1):
			if a[i] % 2 == 1:
				print(n - i - 1)
				print(*[x for x in range(i + 2, n + 1)])
				can = True
				break
		if can:
			continue
		for i in range(n - 1, 0, -1):
			if a[i] % 2 == 1:
				print(i)
				print(*[x for x in range(1, i + 1)])
				can = True
				break
		if can:
			continue
		if not can:
			print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	d1 = dict()
	for i in range(n):
		if arr[i] in d1:
			d1[arr[i]] += 1
		else:
			d1[arr[i]] = 1
	(index, flag) = (0, 0)
	for i in d1:
		if i % 2 == 0:
			flag = 1
			index = arr.index(i)
			break
	if flag == 1:
		print(1)
		print(index + 1)
	else:
		pref = [0] * n
		pref[0] = arr[0]
		for i in range(1, n):
			pref[i] = pref[i - 1] + arr[i]
		flag1 = 0
		idx = 0
		for i in range(n):
			if pref[i] % 2 == 0:
				idx = i + 1
				flag1 = 1
				break
		if flag1 == 1:
			print(idx)
			for i in range(1, idx + 1):
				print(i, end=' ')
			print('')
		else:
			print(-1)


t = int(input())
for x in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	chk = 1
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		for x in range(n):
			if a[x] % 2 == 0:
				print(1)
				print(x + 1)
				break
			elif chk == 1:
				chk = 0
				prevodd = x + 1
			else:
				print(2)
				print(prevodd, x + 1)
				break


t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	result1 = []
	flag = False
	for s in range(len(arr)):
		if arr[s] % 2 == 0:
			print(1)
			print(s + 1)
			flag = True
			break
		else:
			result1.append(s + 1)
		if len(result1) == 2:
			break
	if flag:
		continue
	elif len(result1) == 2:
		print(2)
		for j in result1:
			print(j, end=' ')
	else:
		print(-1)


for i in range(int(input())):
	n = int(input())
	s = False
	for (x, i2) in enumerate(list(map(int, input().split()))):
		if i2 % 2 == 0:
			print(1)
			print(x + 1)
			s = None
			break
		elif i2 % 2 == 1 and s == False:
			s = True
		else:
			print(2)
			print(x, x + 1)
			s = None
			break
	if s != None:
		print(-1)


def calc(A):
	res = []
	for (i, a) in enumerate(A):
		if a % 2 == 1:
			res.append(i + 1)
			if len(res) == 2:
				return res
		else:
			return [i + 1]
	return -1
N = int(input())
cases = []
for _ in range(N):
	_ = input()
	cases.append(list(map(int, input().split())))
for c in cases:
	r = calc(c)
	if r == -1:
		print(r)
	else:
		print(len(r))
		print(' '.join(map(str, r)))


t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	ans = False
	pos = []
	for i in range(n):
		if l[i] % 2 == 0:
			pos.append(i + 1)
			ans = True
			break
	if not ans:
		for i in range(n):
			if l[i] % 2 == 1:
				pos.append(i + 1)
				if len(pos) == 2:
					ans = True
					break
	if ans:
		print(len(pos))
		print(*pos)
	else:
		print(-1)


import sys
input = sys.stdin.readline

def main():
	t = int(input())
	while t:
		t -= 1
		n = int(input())
		(ol, el) = ([], [])
		a = [int(x) for x in input().split()]
		for i in range(n):
			if a[i] & 1:
				ol.append(i + 1)
			else:
				el.append(i + 1)
		if len(ol) > 1:
			print(2)
			print(ol[0], ol[1])
		elif len(el):
			print(1)
			print(el[0])
		else:
			print(-1)
main()


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	neparne = False
	neparne_index = None
	skoncilo = False
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			skoncilo = True
			break
		elif neparne == False:
			neparne = True
			neparne_index = i
			continue
		else:
			print(2)
			print(str(neparne_index + 1) + ' ' + str(i + 1))
			skoncilo = True
			break
	if not skoncilo:
		print(-1)


T = int(input())
while T:
	n = int(input())
	A = list(map(int, input().split()))
	c = -1
	for i in range(n):
		if A[i] % 2 == 0:
			c = i + 1
			break
	if c > 0:
		print(1)
		print(c)
	elif n > 1:
		print(2)
		print(1, 2)
	else:
		print(-1)
	T = T - 1


def main():
	op = ''
	t = int(input())
	for i in range(t):
		n = int(input())
		ip = [int(item) for item in input().split(' ')]
		op += compute(ip)
	print(op)

def compute(ip):
	odd_cnt = 0
	odd_index = ''
	for x in range(len(ip)):
		if ip[x] % 2 == 0:
			return '1\n' + str(x + 1) + '\n'
		if odd_cnt == 2:
			return '2\n' + odd_index + '\n'
		elif ip[x] % 2 != 0:
			odd_index += str(x + 1) + ' '
			odd_cnt += 1
	if odd_cnt == 2:
		return '2\n' + odd_index + '\n'
	return '-1\n'
main()


for i in range(int(input())):
	n = int(input())
	s1 = []
	s2 = []
	a = list(map(int, input().split()))
	for i in range(n):
		if a[i] % 2 == 0:
			s1.append(i + 1)
		else:
			s2.append(i + 1)
	if len(s1) != 0:
		print(len(s1))
		print(*s1)
	elif len(s2) != 0:
		if len(s2) % 2 == 0:
			print(len(s2))
			print(*s2)
		elif len(s2) % 2 != 0 and len(s2) > 2:
			s2.pop(-1)
			print(len(s2))
			print(*s2)
		else:
			print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	ans = -1
	for ind in range(len(a)):
		if a[ind] % 2 == 0:
			ans = ind
			break
	if ans != -1:
		print(1)
		print(ans + 1)
		continue
	o1 = -1
	o2 = -1
	for ind in range(len(a)):
		if a[ind] % 2 != 0:
			o1 = ind
			break
	for ind in range(len(a)):
		if a[ind] % 2 != 0 and ind != o1:
			o2 = ind
			break
	if o1 != -1 and o2 != -1:
		print(2)
		print(o1 + 1, o2 + 1)
	else:
		print(-1)


import sys
import collections
input = sys.stdin.readline

def printnl(val):
	sys.stdout.write(str(val) + '\n')

def solve(n, a):
	for i in range(n):
		if a[i] % 2 == 0:
			return '1\n' + str(i + 1)
	return -1 if n == 1 else '2\n' + '1 2'
T = int(input())
while T:
	n = int(input())
	a = list(map(int, input().split()))
	printnl(solve(n, a))
	T -= 1


rr = lambda : input().strip()
rri = lambda : int(rr())
rrm = lambda : [int(x) for x in rr().split()]
from sys import stdin, stdout, setrecursionlimit

def sol():
	n = rri()
	nums = rrm()
	sm = sum(nums)
	if sm % 2 == 0:
		res = [i + 1 for i in range(n)]
		print(len(res))
		print(*res)
		return
	x = 1
	res = []
	q = False
	for (i, v) in enumerate(nums):
		if q or v % 2 == 0:
			res.append(i + 1)
		else:
			x -= 1
			if x == 0:
				q = True
	if x > 0 or len(res) == 0:
		print(-1)
		return
	print(len(res))
	print(*res)
	return
	return

def main():
	T = rri()
	for t in range(1, T + 1):
		ans = sol()
main()


import sys
import os
from io import BytesIO, IOBase

def cel(n, k):
	return n // k + (n % k != 0)

def ii():
	return int(input())

def mi():
	return map(int, input().split())

def li():
	return list(map(int, input().split()))

def lcm(a, b):
	return abs(a * b) // math.gcd(a, b)

def prr(a, sep=' '):
	print(sep.join(map(str, a)))

def dd():
	return defaultdict(int)

def ddl():
	return defaultdict(list)

def ddd():
	return defaultdict(defaultdict(int))
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
from collections import defaultdict
for _ in range(ii()):
	n = ii()
	a = li()
	f = 0
	reso = []
	for i in range(n):
		if a[i] & 1:
			reso.append(i + 1)
		else:
			print(1)
			print(i + 1)
			f = 1
			break
		if len(reso) == 2:
			print(2)
			print(*reso)
			f = 1
			break
	if f == 0:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	c = 0
	for i in range(n):
		if l[i] % 2 == 0:
			c = i + 1
			print(1)
			print(c)
			break
	if n >= 2 and c == 0:
		print(2)
		print('1' + ' ' + '2')
	if n == 1 and c == 0:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 == 1:
		print(-1)
	elif a[0] % 2 == 0:
		print(1)
		print(1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('{} {}'.format(1, 2))


n = int(input())
for i in range(n):
	t = 0
	t1 = 0
	m = int(input())
	l = list(map(int, input().split()))
	e1 = []
	o1 = []
	for i in range(m):
		if l[i] % 2 == 0 and t == 0 and (t1 == 0 or t1 == 1):
			e1.append(i + 1)
			t = 1
			if t == 1:
				print(1)
				print(e1[0])
				break
		elif l[i] % 2 != 0 and t == 0 and (t1 == 0 or t1 == 1):
			o1.append(i + 1)
			t1 = t1 + 1
			if t1 == 2:
				print(2)
				print(o1[0], o1[1])
				break
			elif t1 == 1 and i == m - 1 and (t == 0):
				print(-1)


z = int(input(''))
y = 1
while y <= z:
	a = int(input(''))
	b = list(map(int, input().split()))
	k = len(b) - 1
	p = 0
	n = 0
	f = 0
	t = 0
	while p <= k:
		if b[p] % 2 == 0:
			print('1')
			print(p + 1)
			f = f + 1
			t = t + 1
			break
		p = p + 1
	if f == 0:
		while n <= k - 1:
			af = b[n] + b[n + 1]
			if af % 2 == 0:
				print('2')
				print(n + 1, n + 2)
				t = t + 1
				break
			n = n + 1
	if t == 0:
		print('-1')
	y = y + 1


query = int(input())
for _ in range(query):
	n = int(input())
	a = list(map(int, input().split()))
	p = False
	if n == 1:
		if a[0] % 2 != 0:
			print(-1)
		else:
			print('1\n1')
	else:
		for i in range(n):
			if not a[i] % 2:
				print(f'1\n{i + 1}')
				p = True
				break
			else:
				for j in range(i + 1, n):
					if (a[i] + a[j]) % 2 == 0:
						p = True
						break
			if p:
				print(f'2\n{i + 1} {j + 1}')
				break
		if not p:
			print(-1)


a = int(input())
for _ in range(a):
	n = int(input())
	numbers = list(map(int, input().split()))
	if n > 1:
		if numbers[0] % 2 == 0:
			print(1)
			print(1)
			continue
		if numbers[1] % 2 == 0:
			print(1)
			print(2)
			continue
		print(2)
		print('1 2')
	elif numbers[0] % 2 == 0:
		print('1')
		print(1)
	else:
		print('-1')


T = int(input())
for z in range(T):
	N = int(input())
	lst = list(map(int, input().split()))
	flag = False
	for i in range(N):
		if lst[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = True
			break
	if flag:
		continue
	idxs = []
	for i in range(N):
		if lst[i] % 2 == 1:
			idxs.append(i + 1)
	if len(idxs) >= 2:
		print(2)
		print(*idxs[:2])
	else:
		print(-1)


from bisect import bisect_left as bl, bisect_right as br, insort
import sys
import heapq
from math import *
from collections import defaultdict as dd, deque

def data():
	return sys.stdin.readline().strip()

def mdata():
	return map(int, data().split())
for i in range(int(input())):
	n = int(input())
	a = list(mdata())
	e = 0
	o = 0
	ind2 = []
	ind1 = []
	for i in range(n):
		if a[i] % 2 == 0:
			e = 1
			ind1 = i + 1
			break
		else:
			o += 1
			ind2.append(i + 1)
	if e == 1:
		print(1)
		print(ind1)
	elif o >= 2:
		print(2)
		print(*ind2[:2])
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	q = [int(x) for x in input().split()]
	odd = []
	even = []
	for (i, x) in enumerate(q):
		t = i + 1
		if x & 1:
			odd.append(t)
		else:
			even.append(t)
		if len(odd) == 2 or len(even) == 1:
			break
	ans = []
	if len(odd) == 2:
		ans.append('2')
		ans.append(' '.join(map(str, odd)))
	elif len(even) == 1:
		ans.append('1')
		ans.append(' '.join(map(str, even)))
	else:
		ans.append('-1')
	print('\n'.join(ans))


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	chet_ind = []
	nechet_ind = []
	for i in range(n):
		if a[i] % 2 == 0:
			chet_ind.append(i)
		else:
			nechet_ind.append(i)
	if len(chet_ind) != 0:
		print(1)
		print(chet_ind[0] + 1)
	elif len(nechet_ind) >= 2:
		print(2)
		print(nechet_ind[0] + 1, nechet_ind[1] + 1)
	else:
		print(-1)


for _ in range(int(input())):
	x = int(input())
	y = list(map(int, input().split()))
	if y[0] % 2 == 0:
		print(1)
		print(1)
	elif x == 1:
		print(-1)
	elif y[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	pos = -1
	total = 0
	for i in range(n):
		if a[i] % 2 == 0:
			pos = i + 1
			break
	if pos == -1:
		if n >= 2:
			print(2)
			print(1, 2)
		else:
			print(-1)
	else:
		print(1)
		print(pos)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	li = []
	final = []
	for i in range(n):
		if a[i] % 2 == 0:
			final.append(i + 1)
		else:
			li.append(i + 1)
	m = len(li) // 2
	for j in range(m * 2):
		final.append(li[j])
	final.sort()
	if len(final) == 0:
		print(-1)
	else:
		print(len(final))
		for k in final:
			print(k, end=' ')
		print()


leven = list()
lodd = list()
t = int(input())
loc = 1
even = 0
odd = 0
i = 0
l = list()
while i < t:
	loc = 1
	even = 0
	odd = 0
	leven.clear()
	lodd.clear()
	z = int(input())
	s = input()
	while s.count(' '):
		p = s.find(' ')
		q = p
		p = int(s[:p])
		if p % 2 == 0:
			even += 1
			leven.append(loc)
		else:
			odd += 1
			lodd.append(loc)
		loc += 1
		s = s[q + 1:]
	p = int(s)
	if p % 2 == 0:
		even += 1
		leven.append(loc)
	else:
		odd += 1
		lodd.append(loc)
	if even == 0 and odd < 2:
		l.append(-1)
	elif even == 0:
		l.append([lodd[0], lodd[1]])
	else:
		l.append([leven[0]])
	i += 1
for item in l:
	if item == -1:
		print('-1')
	else:
		print(len(item))
		g = 0
		while g < len(item):
			print(item[g], end=' ')
			g += 1
		print()


def f(A, n, s=0, l=[], k=0):
	if s != 0 and s % 2 == 0:
		return (True, l)
	elif k == n:
		return (False, 0)
	(ok, l1) = f(A, n, s + A[k], l + [k + 1], k + 1)
	if ok:
		return (ok, l1)
	return f(A, n, s, l, k + 1)
t = int(input())
for _ in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	(ok, l) = f(A, n)
	if ok:
		print(len(l))
		print(*l)
	else:
		print(-1)


for i in range(int(input())):
	w = int(input())
	a = list(map(int, input().split()))
	t = ''
	if w == 1 and a[0] % 2 != 0:
		print(-1)
	else:
		z = 0
		for i in range(w):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
		else:
			print(2)
			print(1, 2)


t = int(input())
for i in range(t):
	s = int(input())
	l = list(map(int, input().split()))
	a = False
	re = 0
	for i in range(s):
		re = re + l[i]
		if re % 2 == 0:
			r = [t + 1 for t in range(i + 1)]
			print(i + 1)
			print(*r)
			a = True
			break
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			a = True
			break
	if a == False:
		print(-1)


def solve(length, numbers):
	even = []
	odd = []
	for i in range(length):
		if numbers[i] % 2 == 0:
			even.append(i + 1)
		else:
			odd.append(i + 1)
	if len(even) > 0:
		print('1')
		print(even[0])
	elif len(odd) > 1:
		print('2')
		print(f'{odd[0]} {odd[1]}')
	else:
		print('-1')
t = int(input())
for m_i in range(0, t):
	array_length = int(input())
	array = [int(inp) for inp in input().split(' ')]
	solve(array_length, array)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	x = []
	y = []
	for i in range(n):
		if l[i] % 2 == 0:
			x.append(i + 1)
		else:
			y.append(i + 1)
	if len(x) != 0:
		print(len(x))
		for i in x:
			print(i, end=' ')
		print()
	elif len(y) == 1:
		print(-1)
	elif len(y) % 2 == 0:
		print(len(y))
		for i in y:
			print(i, end=' ')
		print()
	else:
		print(len(y) - 1)
		for i in range(len(y) - 1):
			print(y[i], end=' ')
		print()


def solve(a):
	odd = []
	for (i, v) in enumerate(a, start=1):
		if v % 2 == 0:
			return [i]
		else:
			odd.append(i)
		if len(odd) == 2:
			return odd
	return []
t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(v) for v in input().split()]
	res = solve(a)
	if len(res) == 0:
		print(-1)
	elif len(res) == 1:
		print(1)
		print(res.pop())
	else:
		print(2)
		print(' '.join(map(str, res)))


N = int(input())
for n in range(N):
	size = int(input())
	nums = input().split()
	odddex = -1
	evendex = -1
	odddex2 = -1
	for i in range(0, size):
		num = int(nums[i])
		if num % 2 == 0:
			evendex = i + 1
			break
		elif odddex == -1:
			odddex = i + 1
		else:
			odddex2 = i + 1
			break
	if evendex != -1:
		print(1)
		print(evendex)
	elif odddex2 == -1:
		print(-1)
	else:
		print(2)
		print(str(odddex) + ' ' + str(odddex2))


t = int(input())
while t > 0:
	l = int(input())
	a = list(map(int, input().split()))
	if len(a) > 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		elif a[0] % 2 != 0 and a[1] % 2 != 0:
			print(2)
			print(1, 2)
		elif a[1] % 2 == 0:
			print(1)
			print(2)
		else:
			print(-1)
	elif a[0] % 2 == 0:
		print(1)
		print(1)
	else:
		print(-1)
	t -= 1


import sys
inf = sys.stdin
input = inf.readline

def read_one_int():
	return int(input().rstrip('\n'))

def read_list_of_ints():
	res = [int(val) for val in input().rstrip('\n').split(' ')]
	return res

def main():
	n = read_one_int()
	for _ in range(n):
		cur_n = read_one_int()
		cur_seq = read_list_of_ints()
		if cur_n == 1:
			if cur_seq[0] % 2:
				print(-1)
			else:
				print('{}\n{}'.format(1, 1))
			continue
		if cur_n == 2:
			if not cur_seq[0] % 2:
				print('{}\n{}'.format(1, 1))
				continue
			if not cur_seq[1] % 2:
				print('{}\n{}'.format(1, 2))
				continue
			if not (cur_seq[0] + cur_seq[1]) % 2:
				print('{}\n{} {}'.format(2, 1, 2))
				continue
			print(-1)
		bad = 0
		bad_ind = -1
		for (j, val) in enumerate(cur_seq):
			if not val % 2:
				print('{}\n{}'.format(1, j + 1))
				break
			if val % 2 and (not bad):
				bad += 1
				bad_ind = j + 1
			elif val % 2:
				print('{}\n{} {}'.format(2, bad_ind, j + 1))
				break
			if j + 1 == len(cur_seq):
				print(-1)
main()


for t in range(int(input())):
	n = int(input())
	x = [int(k) for k in input().split()]
	flag = 0
	for c in x:
		if c % 2 == 0:
			i = x.index(c)
			print(1)
			print(i + 1)
			flag = 1
			break
	if flag == 0:
		if n == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)


import sys
import os
import time
import collections
from collections import Counter, deque
import itertools
import math
import timeit
import random
from io import BytesIO, IOBase
from bisect import bisect_left as bl
from bisect import bisect_right as br

def sieve(n):
	if n < 2:
		return list()
	prime = [True for _ in range(n + 1)]
	p = 3
	while p * p <= n:
		if prime[p]:
			for i in range(p * 2, n + 1, p):
				prime[i] = False
		p += 2
	r = [2]
	for p in range(3, n + 1, 2):
		if prime[p]:
			r.append(p)
	return r

def divs(n, start=1):
	divisors = []
	for i in range(start, int(math.sqrt(n) + 1)):
		if n % i == 0:
			if n / i == i:
				divisors.append(i)
			else:
				divisors.extend([i, n // i])
	return divisors

def divn(n, primes):
	divs_number = 1
	for i in primes:
		if n == 1:
			return divs_number
		t = 1
		while n % i == 0:
			t += 1
			n //= i
		divs_number *= t

def flin(d, x, default=-1):
	left = right = -1
	for i in range(len(d)):
		if d[i] == x:
			if left == -1:
				left = i
			right = i
	if left == -1:
		return (default, default)
	else:
		return (left, right)

def modpow(b, p, m):
	res = 1
	b = b % m
	while p:
		if p & 1:
			res = res * b % m
		b = b * b % m
		p >>= 1
	return res

def mod_inv(a, m):
	return modpow(a, m - 2, m)

def ncr(n, r, m):
	res = 1
	if r == 0:
		return 1
	if n - r < r:
		r = n - r
	(p, k) = (1, 1)
	while r:
		res = res % m * (n % m * mod_inv(r, m) % m) % m
		n -= 1
		r -= 1
	return res

def ncrlis(n, r, m, fact):
	return fact[n] * (mod_inv(fact[r], m) * mod_inv(fact[n - r], m)) % m % m

def ceil(n, k):
	return n // k + (n % k != 0)

def ii():
	return int(input())

def mi():
	return map(int, input().split())

def li():
	return list(map(int, input().split()))

def lcm(a, b):
	return abs(a * b) // math.gcd(a, b)

def prr(a, sep=' '):
	print(sep.join(map(str, a)))

def dd():
	return collections.defaultdict(int)

def ddl():
	return collections.defaultdict(list)
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
for _ in range(ii()):
	n = ii()
	a = li()
	(f, f1) = (0, 0)
	for i in range(n):
		if a[i] & 1 == 0:
			f1 = 1
			print(1)
			print(i + 1)
			break
		elif f == 0:
			f = 1
			idx1 = i + 1
		else:
			f = 0
			print(2)
			print(idx1, i + 1)
			break
	if f == 1 and f1 == 0:
		print(-1)


t = input()
for _ in range(int(t)):
	e = []
	o = []
	ecount = 0
	ocount = 0
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(n):
		if ecount > 0 or ocount > 1:
			break
		elif a[i] % 2 == 0:
			ecount += 1
			e.append(i + 1)
		else:
			ocount += 1
			o.append(i + 1)
	if ecount > 0:
		print(ecount)
		print(e[0])
	elif ocount > 1:
		print(ocount)
		print(o[0], o[1])
	else:
		print(-1)


import math, itertools, fractions, heapq, collections, bisect, sys, queue, copy
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20
mod = 10 ** 9 + 7
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]

def LI():
	return [int(x) for x in sys.stdin.readline().split()]

def I():
	return int(sys.stdin.readline())

def F():
	return float(sys.stdin.readline())

def LS():
	return sys.stdin.readline().split()

def S():
	return input()

def main():
	n = I()
	ans = []
	for _ in range(n):
		k = I()
		l = LI()
		x1 = []
		x2 = []
		for (i, x) in enumerate(l):
			if x % 2 == 0:
				x1.append(i + 1)
			else:
				x2.append(i + 1)
		if len(x1) > 0:
			ans.append([x1[0]])
		elif len(x2) > 1:
			ans.append([x2[0], x2[1]])
		else:
			ans.append([])
	for x in ans:
		if len(x) == 0:
			print(-1)
		else:
			print(len(x))
			print(' '.join([str(y) for y in x]))
main()


import sys
input = sys.stdin.readline
t = int(input())
for i in range(t):
	n = int(input())
	l = [int(i) for i in input().split()]
	f = 0
	e = sum((i % 2 == 0 for i in l))
	o = sum((i & 1 for i in l))
	if e:
		for i in range(n):
			if l[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
		continue
	if o > 1:
		ind = []
		c = 0
		for i in range(n):
			if l[i] & 1:
				c += 1
				ind.append(i + 1)
				if c == 2:
					print(2)
					print(*ind)
					break
		continue
	print(-1)


from sys import stdin

def solve():
	n = int(input())
	A = [int(i) for i in stdin.readline().split()]
	o = []
	for i in range(len(A)):
		if len(o) == 2:
			print(2)
			print(o[0], o[1])
			return 0
		if A[i] % 2 == 1:
			o.append(i + 1)
		else:
			print(1)
			print(i + 1)
			return 0
	if len(o) == 2:
		print(2)
		print(o[0], o[1])
		return 0
	print(-1)
	return 0
t = int(input())
for _ in range(t):
	solve()


for _ in range(int(input())):
	n = int(input())
	odd_count = list()
	k = 1
	for i in map(int, input().split()):
		if i % 2 == 0:
			print(1)
			print(k)
			break
		if i % 2 == 1:
			odd_count.append(k)
			if len(odd_count) == 2:
				print(2)
				print(*odd_count)
				break
		k += 1
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	(odd, c, f) = ([], 0, 0)
	for i in range(n):
		if arr[i] & 1 == 1 and c != 2:
			odd.append(i)
			c += 1
		elif arr[i] & 1 == 0:
			f = 1
			print(1)
			print(i + 1)
			break
	if f == 0 and c == 2:
		print(2)
		print(odd[0] + 1, odd[1] + 1)
	elif f == 0:
		print(-1)


t = int(input())
for i in range(0, t):
	n = int(input())
	L = list(map(int, input().split()))
	M = []
	for i in range(0, n):
		if L[i] % 2 == 0:
			print(1)
			print(i + 1)
			M = []
			break
		else:
			M.append(i + 1)
	if len(M) == 1:
		print(-1)
	if len(M) > 1:
		print(2)
		print(str(M[0]) + ' ' + str(M[1]))


a = int(input())
for i in range(a):
	x = int(input())
	z = list(map(int, input().split()))
	odd = []
	flag = 0
	for i in range(len(z)):
		if z[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
		else:
			odd.append(i + 1)
		if len(odd) == 2:
			flag = 1
			print(2)
			print(' '.join(map(str, odd)))
			break
	if flag == 0:
		print(-1)


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	a = [int(x) for x in input().split()]
	index = []
	odd = 0
	f = 0
	for i in range(n):
		if a[i] % 2:
			odd += a[i]
			index.append(i)
			if odd % 2 == 0:
				print(len(index))
				for k in index:
					print(k + 1, end=' ')
				f = 1
				print()
				break
		else:
			print(1)
			print(i + 1)
			f = 1
			break
	if f == 0:
		print(-1)


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	odd = -1
	cnt = 1
	for elem in a:
		if elem % 2 < 1:
			odd = cnt
		cnt += 1
	if odd > 0:
		print(1)
		print(odd)
	elif len(a) > 1:
		print(2)
		print(1, 2)
	else:
		print(-1)


for t in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	for i in range(n):
		if l[i] % 2 == 1:
			k = i
	if sum(l) % 2 == 1 and n == 1:
		print(-1)
	elif sum(l) % 2 == 1:
		print(n - 1)
		ans = [i for i in range(1, n + 1)]
		ans.remove(k + 1)
		print(*ans)
	else:
		print(n)
		ans = [i for i in range(1, n + 1)]
		print(*ans)


t = int(input())
while t != 0:
	a = int(input())
	b = list(map(int, input().split(' ')))
	d = []
	c = 0
	for i in range(0, a):
		for j in range(i, a):
			if sum(b[i:j + 1]) % 2 == 0:
				c = abs(i - j) + 1
				d.append([i, j])
				break
		else:
			continue
		break
	if c != 0:
		print(c)
		for i in range(d[0][0] + 1, d[0][1] + 2):
			print(i, end=' ')
		print()
	else:
		print(-1)
	t = t - 1


m = int(input())
for i in range(m):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		for j in range(n):
			if a[j] % 2 == 0:
				print(1)
				print(j + 1)
				break
			elif a[0] % 2 != 0 and a[1] % 2 != 0:
				print(2)
				print(1, 2)
				break


t = int(input())
solution = []
for i in range(t):
	n = int(input())
	nums = [int(x) for x in input().split()]
	pair = []
	done = False
	for (j, num) in enumerate(nums):
		if num % 2 == 0:
			solution.append('1')
			solution.append(str(j + 1))
			done = True
			break
		else:
			if len(pair) == 1:
				solution.append('2')
				solution.append(pair[0] + ' ' + str(j + 1))
				done = True
				break
			pair.append(str(j + 1))
	if not done:
		solution.append('-1')
	pair = []
print('\n'.join(solution))


for i in range(int(input())):
	c = int(input())
	f = [int(i) for i in input().split()]
	if c == 1:
		if sum(f) % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		g = [i % 2 for i in f]
		if 0 in g:
			print(1)
			for i in range(len(g)):
				if g[i] == 0:
					print(i + 1)
					break
		else:
			print(2)
			print(1, 2)


for i in range(int(input())):
	n = int(input())
	num = list(map(int, input().split()))
	odd = []
	ans = False
	for j in range(n):
		if num[j] % 2 == 0:
			print('1')
			print(j + 1)
			ans = True
			break
		else:
			odd.append(j)
			if len(odd) == 2:
				print('2')
				print(odd[0] + 1, odd[1] + 1)
				ans = True
				break
	if ans == False:
		print('-1')


def solve():
	n = int(input())
	a = list(map(int, input().split(' ')))
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
	ans = []
	for i in range(n):
		if a[i] % 2 == 1:
			ans.append(i + 1)
		if len(ans) == 2:
			break
	if len(ans) <= 1:
		print(-1)
	else:
		print(len(ans))
		for x in ans:
			print(x, end=' ')
t = int(input())
for _ in range(t):
	solve()


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	flag = 0
	for even in a:
		if even % 2 == 0:
			print(1)
			print(a.index(even) + 1)
			flag = 1
			break
	if flag == 0:
		if n > 1:
			print(2)
			print(1, 2)
		else:
			print(-1)


def res(l, n):
	ind = []
	odd = 0
	flag = -1
	for i in range(n):
		if l[i] % 2 == 0:
			d = i + 1
			return d
	for i in range(n):
		if l[i] % 2 != 0:
			odd += 1
			ind.append(i + 1)
		if odd == 2:
			return ind
	return -1
t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	r = []
	r = res(l, n)
	if type(r) == int:
		if r == -1:
			print(-1)
		else:
			print(1)
			print(r)
	else:
		print(2)
		print(r[0], r[1])


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	odd = []
	even = []
	for i in range(len(l)):
		if l[i] & 1:
			odd.append(i)
		else:
			even.append(i)
	if len(even) > 0:
		print(1)
		print(even[0] + 1)
	elif len(odd) > 1:
		print(2)
		print(odd[0] + 1, odd[1] + 1)
	else:
		print(-1)


T = int(input())
for cas in range(T):
	n = int(input())
	a = [int(e) for e in input().split()]
	ok = False
	b = []
	for (i, j) in enumerate(a):
		if j % 2 == 0:
			print(1)
			print(i + 1)
			ok = True
			break
		else:
			b.append(i + 1)
		if len(b) >= 2:
			print(2)
			print(b[0], b[1])
			ok = True
			break
	if not ok:
		print(-1)


def solver(arr):
	for i in arr:
		if i % 2 == 0:
			print(1)
			print(arr.index(i) + 1)
			return
	else:
		if len(arr) >= 2:
			print(2)
			print('1' + ' ' + '2')
			return 0
	print(-1)
i = int(input())
for j in range(0, i):
	a = int(input())
	arr = [int(num) for num in input().split()]
	solver(arr)


t = int(input())
for you in range(t):
	n = int(input())
	l = input().split()
	li = [int(i) for i in l]
	done = 0
	if n == 1 and li[0] % 2:
		print(-1)
		continue
	for i in range(n):
		if li[i] % 2 == 0:
			print(1)
			print(i + 1)
			done = 1
			break
	if done:
		continue
	print(2)
	for i in range(n):
		if li[i] % 2:
			print(i + 1, end=' ')
			done += 1
			if done == 2:
				break


def subset(n, a):
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
	arr = []
	count = 0
	for i in range(n):
		if a[i] % 2 != 0:
			arr.append(i + 1)
	if len(arr) == 1:
		print(-1)
	if len(arr) >= 2:
		print(2)
		for i in arr:
			print(i, end=' ')
			count += 1
			if count == 2:
				break
t = int(input())
for i in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	ans = subset(n, a)
	ans


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ans = []
	odd = []
	k = 0
	for i in range(len(a)):
		if a[i] % 2 == 0:
			k += 1
			ans = []
			ans.append(i + 1)
			break
		elif len(ans) == 1:
			ans.append(i + 1)
			k = 2
			break
		else:
			ans.append(i + 1)
	if k == 0:
		print(-1)
	else:
		print(k)
		for i in ans:
			print(i, end=' ')
		print()


t = int(input())
for u in range(t):
	y = False
	n = int(input())
	arr = list(map(int, input().split()))
	for i in range(n):
		if arr[i] % 2 == 0 and y == False:
			print(1)
			print(i + 1)
			y = True
		else:
			for j in range(i + 1, n):
				if (arr[i] + arr[j]) % 2 == 0 and i != j and (y == False):
					print(2)
					print(i + 1, j + 1)
					y = True
	if y == False:
		print(-1)


read = lambda : list(map(int, input().split(' ')))
for _ in range(int(input())):
	n = int(input())
	arr = read()
	even = []
	odd = []
	flag = 0
	for (i, elem) in enumerate(arr):
		if elem % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
		elif odd:
			print(2)
			print(odd[-1], i + 1)
			flag = 1
			break
		else:
			odd.append(i + 1)
	if not flag:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	li = list(map(int, input().split()))
	od = 0
	cnt = 0
	li2 = list()
	for i in li:
		if i % 2 == 1:
			od += 1
	if od % 2 == 1:
		od -= 1
	for i in range(n):
		if od != 0 and li[i] % 2 == 1:
			li2.append(i + 1)
			cnt += 1
			od -= 1
		elif li[i] % 2 == 0:
			li2.append(i + 1)
			cnt += 1
	if cnt == 0:
		print('-1')
	else:
		print(cnt)
		print(*li2)


t = int(input())
while t > 0:
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		if l[0] % 2 != 0:
			print('-1')
		else:
			print('1')
			print('1')
	else:
		k = 0
		ans = []
		flag = 0
		for i in range(n):
			if l[i] % 2 == 0:
				print('1')
				print(i + 1)
				flag = 1
				break
			else:
				k += 1
				ans.append(i + 1)
				if k == 2:
					break
		if flag == 0:
			print(k)
			for i in range(k):
				print(ans[i], end=' ')
	t -= 1


for i in range(int(input())):
	n = int(input())
	k = 0
	l = list(map(int, input().split()))
	for i in range(len(l)):
		if l[i] % 2 == 0:
			print('1')
			print(i + 1)
			k = 1
			break
	if k == 0:
		if len(l) > 1:
			print('2')
			print('1 2')
		else:
			print('-1')


t = int(input())
for _ in range(t):
	o = []
	flag = False
	n = int(input())
	s = list(map(int, input().split()))
	for i in range(n):
		if s[i] % 2 == 0:
			print('1')
			print(i + 1)
			flag = True
			break
		else:
			o.append(i + 1)
			if len(o) % 2 == 0:
				print('2')
				print(o[0], end=' ')
				print(i + 1)
				flag = True
				break
	if not flag:
		print(-1)


t = int(input())
for dum in range(t):
	n = int(input())
	a = [None] + list(map(int, input().split()))
	if n == 1 and a[1] % 2 == 1:
		print(-1)
	else:
		mark = True
		for i in range(1, n + 1):
			if a[i] % 2 == 0:
				print(1)
				print(i)
				mark = False
				break
		if mark:
			print(2)
			print(1, 2)


def solve():
	n = int(input())
	lst = list(map(int, input().split()))
	if n == 1:
		if lst[0] % 2:
			print(-1)
		else:
			print(1)
			print(1)
	elif lst[0] % 2 == 0:
		print(1)
		print(1)
	elif lst[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)
for i in range(int(input())):
	solve()


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2:
		print(-1)
		continue
	if a[0] % 2 == 0:
		print(1)
		print(1)
		continue
	if a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


n = int(input())
for i in range(n):
	t = int(input())
	a = list(map(int, input().strip().split()))
	ans = []
	f = 0
	for i in range(t):
		sumi = 0
		ans = []
		for j in range(i, t):
			ans.append(j + 1)
			sumi += a[j]
			if sumi % 2 == 0:
				f = 1
				break
		if f == 1:
			break
	if f == 1:
		print(len(ans))
		print(*ans)
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	odd1 = False
	done = False
	for i in range(len(a)):
		num = a[i]
		if num % 2 == 0:
			done = True
			print(1)
			print(i + 1)
			break
		elif num % 2 == 1:
			if not odd1:
				odd1 = i + 1
			else:
				print(2)
				print(odd1, i + 1)
				done = True
				break
	if not done:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	arr = list((int(x) for x in input().split()))
	odd1 = None
	flag = 1
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 0
			break
		elif odd1 == None:
			odd1 = i
		else:
			print(2)
			print(str(odd1 + 1) + ' ' + str(i + 1))
			flag = 0
			break
	if flag:
		print(-1)


n1 = int(input())
for i in range(n1):
	n = int(input())
	l = [int(x) for x in input().split()]
	if n == 1:
		if l[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	elif l[0] % 2 == 0:
		print(1)
		print(1)
	elif l[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


for __ in range(int(input())):
	n = int(input())
	s = list(map(int, input().split()))
	if s[0] & 1 == 0:
		print(1)
		print(1)
	elif n == 1:
		print(-1)
	elif s[1] & 1 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


for i in range(int(input())):
	q = int(input())
	w = list(map(int, input().split()))
	r = []
	t = 0
	y = 0
	for i in range(q):
		if w[i] % 2 == 0:
			t = i + 1
		else:
			y += 1
			r.append(i + 1)
	if t > 0:
		print(1)
		print(t)
	elif y > 1:
		print(2)
		print(r[0], r[1])
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	r = [1]
	e = 0 if a[0] % 2 != 0 else 1
	for j in range(1, len(a)):
		if e != 0 or len(r) % 2 == 0:
			break
		elif a[j] % 2 == 0:
			r = [j + 1]
			e = 1
		elif len(r) % 2 != 0:
			r.append(j + 1)
	if len(r) % 2 == 0 or e != 0:
		print(len(r))
		print(*r)
	else:
		print(-1)


def func(arr):
	if sum(arr) % 2 == 0:
		print(len(arr))
		print(*range(1, len(arr) + 1))
		return
	if len(arr) == 1 and arr[0] % 2 == 1:
		print(-1)
		return
	if len(arr) == 1 and arr[0] % 2 == 0:
		print(1)
		print(1)
		return
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
	if len(arr) % 2 == 0:
		print(len(arr))
		print(*range(1, len(arr) + 1))
		return
	else:
		print(len(arr) - 1)
		print(*range(1, len(arr)))
		return
n = int(input())
for q in range(n):
	p = input()
	lst = list(map(int, input().split()))
	func(lst)


from sys import stdin, stdout
from bisect import bisect, bisect_left, bisect_right

def gt():
	return map(int, stdin.readline().split())

def gi():
	return int(stdin.readline())

def gl():
	return list(map(int, stdin.readline().split()))

def gs():
	return stdin.readline()
t = gi()
for _ in range(t):
	n = gi()
	a = gl()
	(o, e) = (0, 0)
	for i in a:
		if i & 1:
			o += 1
		else:
			e += 1
	if e > 0:
		print(1)
		for (j, i) in enumerate(a):
			if i & 1 == 0:
				print(j + 1)
				break
	elif o > 1:
		print(2)
		count = 0
		for (j, i) in enumerate(a):
			if i & 1:
				print(j + 1, end=' ')
			count += 1
			if count == 2:
				break
		print()
	else:
		print(-1)


a = int(input())
for _ in range(a):
	g = 0
	z = int(input())
	mnojestvo = input()
	mnojestvom = mnojestvo.split()
	if z == 1 and int(mnojestvom[0]) % 2 == 1:
		print('-1')
	else:
		for y in range(z):
			if int(mnojestvom[y]) % 2 == 0:
				print('1')
				print(y + 1)
				break
			elif int(mnojestvom[y]) % 2 == 1:
				if g > 0:
					print('2')
					print(g, y + 1)
					break
				g = y + 1


t = int(input())
for _ in range(t):
	n = int(input())
	lol = [int(n) for n in input().split()]
	if len(lol) == 1 and lol[0] % 2 != 0:
		print(-1)
		continue
	index = []
	cnt = 1
	k = 0
	for i in lol:
		if i % 2 == 0:
			k = 1
			print(1)
			print(lol.index(i) + 1)
			break
		else:
			k += 1
			index.append(cnt)
			cnt += 1
			if k == 2:
				print(2)
				print(*index)
				break


t = int(input())
M = []

def fonction(L, n):
	res = [i % 2 for i in L]
	if 0 not in res:
		if n >= 2:
			return (2, (1, 2))
		else:
			return -1
	else:
		return (1, (res.index(0) + 1,))
for i in range(t):
	n = int(input())
	L = [int(x) for x in input().split()]
	M.append(fonction(L, n))
for k in M:
	if k == -1:
		print(k)
	else:
		print(k[0])
		print(' '.join([str(x) for x in k[1]]))


for i in range(int(input())):
	a = int(input())
	l = list(map(int, input().split()))
	l1 = []
	y = 0
	z = 0
	for i in range(a):
		b = 0
		if l[i] % 2 == 0:
			b = b + 1
			l1.append(b)
			c = i + 1
			z = z + 1
			break
	if z == 0:
		for i in range(a):
			if y == 0:
				for j in range(i + 1, a):
					if (l[i] + l[j]) % 2 == 0:
						l1.append(2)
						y = y + 1
						c = i + 1
						d = j + 1
			else:
				break
	x = sum(l1)
	if x > 0:
		if z > 0:
			print(max(l1))
			print(c)
		elif y > 0:
			print(max(l1))
			print(c, d)
	else:
		print('-1')


n = int(input())
for i in range(n):
	x = int(input())
	c = []
	d = []
	e = 0
	o = 0
	a = list(map(int, input().split()))
	for i in range(len(a)):
		if a[i] % 2 == 0:
			e += 1
			c.append(i + 1)
		else:
			o += 1
			d.append(i + 1)
	if e > 0:
		print(1)
		print(c[0])
	elif o >= 2:
		print(2)
		print(d[0], d[1])
	else:
		print(-1)


q = int(input())

def solve(arr):
	odd = -1
	for (i, a) in enumerate(arr):
		if a % 2 and odd > -1:
			return f'2\n{odd + 1} {i + 1}'
		if a % 2:
			odd = i
		if a % 2 == 0:
			return f'1\n{i + 1}'
	return '-1'
for i in range(q):
	input()
	arr = list(map(int, input().split()))
	print(solve(arr))


T = int(input())
for i in range(T):
	N = int(input())
	lst = list(map(int, input().split()))[:N]
	c = 1
	if len(lst) == 1:
		if sum(lst) % 2 == 0:
			c = 0
			print(1)
			print(1)
		else:
			c = 0
			print(-1)
	elif len(lst) > 1:
		for j in range(len(lst)):
			if lst[j] % 2 == 0:
				c = 0
				print('1')
				print(j + 1)
				break
	if c == 1:
		print('2')
		print(1, 2, sep=' ')


t = int(input())
for i in range(0, t):
	n = int(input())
	a = input().split()
	x = 0
	chet = 0
	nechet = 0
	results1 = []
	results2 = []
	count1 = 0
	count2 = 0
	z = 0
	for i in a:
		a[x] = int(a[x])
		if a[x] % 2 == 0:
			chet += 1
			count1 += 1
			results1.append(x + 1)
		else:
			nechet += 1
			count2 += 1
			results2.append(x + 1)
		if nechet >= 2:
			print(count2)
			for z in results2:
				print(z, end=' ')
			break
		elif chet >= 1:
			print(count1)
			for z in results1:
				print(z, end=' ')
			break
		if len(a) == x + 1:
			print('\n-1')
			break
		x += 1


t = int(input())
results = []
for test in range(t):
	n = int(input())
	arr = [int(j) for j in input().split(' ')]
	i = 0
	indices = ''
	flag_even = 0
	flag_odd = 0
	while i < n and flag_odd != 2:
		if arr[i] % 2 == 0:
			flag_even = 1
			break
		else:
			flag_odd += 1
			indices += str(i + 1) + ' '
			i += 1
	if flag_even == 1:
		res = [1, i + 1]
	elif flag_odd == 1:
		res = [0, -1]
	else:
		res = [2, indices[:-1]]
	results.append(res)
for res in results:
	if res[0] != 0:
		print(res[0])
	print(res[1])


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	l1 = []
	flag = 0
	for i in range(n):
		if l[i] % 2 == 0:
			flag = 1
			j = i
			break
		else:
			l1.append(i)
			if len(l1) == 2:
				flag = 2
				break
	if flag == 1:
		print(1)
		print(j + 1)
	elif flag == 2:
		print(2)
		print(l1[0] + 1)
		print(l1[1] + 1)
	else:
		print(-1)


import sys
import copy
input = sys.stdin.readline
from math import *
t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	a = [int(x) for x in input().split()]
	e = []
	o = []
	for i in a:
		if i % 2 == 0:
			e.append(i)
		else:
			o.append(i)
	flag = 0
	if len(e) > 0:
		print(1)
		print(a.index(e[0]) + 1)
		flag = 1
	elif len(o) > 1:
		for i in range(n - 1):
			if a[i] % 2 == 1 and a[i + 1] % 2 == 1:
				print(2)
				print(i + 1, i + 2)
				flag = 1
				break
	if not flag:
		print(-1)


for q in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	res = []
	f = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
		else:
			res.append(i + 1)
	if f == 0:
		if len(res) < 2:
			print(-1)
		else:
			print(2)
			print(*res[:2])


def evenSubset(arr):
	indexes = []
	for (i, e) in enumerate(arr):
		if e % 2 == 0:
			return (1, [i + 1])
		else:
			indexes.append(i + 1)
			if len(indexes) > 1:
				return (2, indexes)
	return (-1, [])
t = int(input())
for _ in range(t):
	n = int(input())
	array = list(map(int, input().split()))
	(ans, index) = evenSubset(array)
	print(ans)
	if index:
		print(*index)


for tc in range(int(input())):
	n = int(input())
	x = input().split()
	odd = -1
	for i in range(n):
		if int(x[i]) % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif odd != -1:
			print(2)
			print(odd + 1, i + 1)
			break
		else:
			odd = i
	else:
		print(-1)


from functools import lru_cache, reduce
t = int(input().strip())
for i in range(t):
	n = int(input().strip())
	ls = list(map(int, input().strip().split()))
	if ls[0] % 2 == 0:
		print(1)
		print(1)
	elif n == 1:
		print(-1)
	elif ls[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


import sys
input = sys.stdin.readline
Q = int(input())
Query = []
for _ in range(Q):
	N = int(input())
	A = list(map(int, input().split()))
	Query.append((N, A))
for (N, A) in Query:
	E = []
	O = []
	for (i, a) in enumerate(A):
		if a % 2 == 0:
			E.append(i + 1)
			break
		else:
			O.append(i + 1)
	if E:
		print(1)
		print(*E)
	elif len(O) > 1:
		print(2)
		print(*O[:2])
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	new = []
	old = []
	for i in arr:
		if i % 2 == 0:
			new.append(i)
			if len(new) > 0:
				break
		else:
			old.append(i)
	if len(new) != 0:
		ans = []
		for i in new:
			temp = arr.index(i)
			ans.append(temp + 1)
			arr[temp] = 'X'
		print(len(ans))
		print(*ans, sep=' ')
	elif len(old) >= 2:
		if len(old) % 2 == 0:
			ans = []
			for i in old:
				temp = arr.index(i)
				ans.append(temp + 1)
				arr[temp] = 'X'
			print(len(ans))
			print(*ans, sep=' ')
		else:
			ans = []
			for i in range(0, len(old) - 1):
				temp = arr.index(old[i])
				ans.append(temp + 1)
				arr[temp] = 'X'
			print(len(ans))
			print(*ans, sep=' ')
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	(o, e) = (0, 0)
	for i in range(len(l)):
		if l[i] % 2:
			o += 1
		else:
			e += 1
	if o < 2 and e == 0:
		print(-1)
	elif e > 0:
		print(1)
		for i in range(len(l)):
			if l[i] % 2 == 0:
				print(i + 1)
				break
	else:
		print(2)
		c = 0
		(a, b) = (0, 0)
		for i in range(len(l)):
			if l[i] % 2 and c == 0:
				a = i + 1
				c += 1
			elif l[i] % 2 and c == 1:
				b = i + 1
				break
		print(a, b)


t = int(input())
while t:
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1:
		if l[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		temp = []
		for (index, i) in enumerate(l):
			if i % 2 == 0:
				print(1)
				flag = 1
				print(index + 1)
				break
			else:
				temp.append(index)
				if len(temp) == 2:
					print(2)
					for ix in temp:
						print(ix + 1, end=' ')
					print()
					break
	t -= 1


import sys
import math
sys.setrecursionlimit(100000)
input = sys.stdin.readline

def inp():
	return int(input())

def inara():
	return list(map(int, input().split()))

def insr():
	s = input()
	return list(s[:len(s) - 1])

def invr():
	return map(int, input().split())
t = inp()
for _ in range(t):
	n = inp()
	ara = inara()
	even = []
	odd = []
	flag = False
	for i in range(n):
		num = ara[i]
		if num % 2:
			odd.append(i + 1)
		else:
			even.append(i + 1)
		if len(odd) and len(odd) % 2 == 0:
			print(len(odd))
			print(*odd)
			flag = True
			break
		elif len(even):
			print(len(even))
			print(*even)
			flag = True
			break
	if not flag:
		print(-1)


import sys, math
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	(even, odd) = ([], [])
	for i in range(n):
		if a[i] % 2 == 0:
			even.append(i + 1)
			break
		else:
			odd.append(i + 1)
			if len(odd) == 2:
				break
	if len(even) == 1:
		print(1)
		print(even[0])
	elif len(odd) == 2:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)


for tc in range(int(input())):
	n = int(input())
	a = list(map(int, input().split(' ')))
	has_even = False
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			has_even = True
			break
	if not has_even:
		if n > 1:
			print(2)
			print(1, 2)
		else:
			print(-1)


import sys
input = sys.stdin.readline
t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	ind = list()
	for i in range(n):
		if arr[i] % 2 == 0:
			ind.append(i + 1)
	if len(ind) == 0:
		for i in range(n):
			if arr[i] % 2 and (n > 1 and len(ind) < 2):
				ind.append(i + 1)
	if len(ind) == 0:
		print(-1)
		continue
	print(len(ind))
	for i in range(len(ind)):
		print(ind[i], end=' ')
	print()


def solve(numbers):
	odd_indexes = []
	for i in range(0, len(numbers)):
		if numbers[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		else:
			odd_indexes.append(i)
			if len(odd_indexes) == 2:
				print(2)
				print('{} {}'.format(odd_indexes[0] + 1, odd_indexes[1] + 1))
				return
	print(-1)
numberOfTestCases = int(input())
for u in range(0, numberOfTestCases):
	length = int(input())
	temp = input().split(' ')
	test = list(map(int, temp))
	solve(test)


t = int(input())
for test in range(t):
	n = int(input())
	lst = [int(i) for i in input().split()][:n]
	odd_lst = list()
	for i in range(n):
		if lst[i] % 2 == 0:
			print('1')
			print(i + 1, end='')
			break
		else:
			odd_lst.append(i + 1)
		if len(odd_lst) % 2 == 0:
			print(len(odd_lst))
			for j in odd_lst:
				print(j, end=' ')
			break
		if i == n - 1:
			print('-1', end='')
	print('\n', end='')


for q in range(int(input())):
	n = int(input())
	tab = list(map(int, input().split()))
	ok = False
	for i in range(n):
		if tab[i] % 2 == 0:
			print('1\n' + str(i + 1))
			ok = True
			break
	if ok:
		continue
	if n >= 2:
		print('2\n1 2')
	else:
		print('-1')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	c = 0
	r = []
	flag = 1
	for j in range(n):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			flag = 0
			break
	if flag == 1:
		for j in range(n):
			if a[j] % 2 != 0:
				r.append(j + 1)
				c = c + 1
			if c == 2:
				break
		if c < 2:
			print(-1)
		else:
			print(2)
			print(*r)


import sys
import math
import itertools
import functools
import collections
import operator
import fileinput
import copy
ORDA = 97

def ii():
	return int(input())

def mi():
	return map(int, input().split())

def li():
	return list(map(int, input().split()))

def lcm(a, b):
	return abs(a * b) // math.gcd(a, b)

def revn(n):
	return str(n)[::-1]

def dd():
	return collections.defaultdict(int)

def ddl():
	return collections.defaultdict(list)

def sieve(n):
	if n < 2:
		return list()
	prime = [True for _ in range(n + 1)]
	p = 3
	while p * p <= n:
		if prime[p]:
			for i in range(p * 2, n + 1, p):
				prime[i] = False
		p += 2
	r = [2]
	for p in range(3, n + 1, 2):
		if prime[p]:
			r.append(p)
	return r

def divs(n, start=2):
	r = []
	for i in range(start, int(math.sqrt(n) + 1)):
		if n % i == 0:
			if n / i == i:
				r.append(i)
			else:
				r.extend([i, n // i])
	return r

def divn(n, primes):
	divs_number = 1
	for i in primes:
		if n == 1:
			return divs_number
		t = 1
		while n % i == 0:
			t += 1
			n //= i
		divs_number *= t

def prime(n):
	if n == 2:
		return True
	if n % 2 == 0 or n <= 1:
		return False
	sqr = int(math.sqrt(n)) + 1
	for d in range(3, sqr, 2):
		if n % d == 0:
			return False
	return True

def convn(number, base):
	newnumber = 0
	while number > 0:
		newnumber += number % base
		number //= base
	return newnumber

def cdiv(n, k):
	return n // k + (n % k != 0)
for _ in range(ii()):
	n = ii()
	a = li()
	if n == 1 and a[0] & 1:
		print(-1)
	else:
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
		else:
			print(2)
			print(1, 2)


T = int(input())
while T > 0:
	T -= 1
	n = int(input())
	lst = [int(x) for x in input().strip().split()]
	if len(lst) == 0:
		print(-1)
		continue
	if len(lst) == 1 and lst[0] % 2:
		print(-1)
		continue
	d = lst[0]
	if not d % 2:
		print('1\n1')
		continue
	if lst[1] % 2:
		print('2\n1 2')
	else:
		print('1\n2')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if len(a) == 1 and a[0] % 2 != 0:
		print(-1)
	else:
		for i in range(n):
			a[i] %= 2
		res = []
		res2 = []
		flag = False
		cnt = 0
		for i in range(n):
			if a[i] == 0:
				res.append(i + 1)
				flag = True
				break
			else:
				res2.append(i + 1)
				cnt += 1
				if cnt == 2:
					break
		if flag:
			print(1)
			print(res[0])
		else:
			print(2)
			print(res2[0], res2[1])


import math
t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	x = []
	even = -1
	for i in range(n):
		if a[i] % 2 == 0:
			even = i + 1
			print(1)
			print(even)
			break
		else:
			x.append(i + 1)
			if len(x) == 2:
				print(2)
				print(x[0], x[1])
				break
	if even == -1 and len(x) < 2:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	r = 0
	f = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
	if f == 0:
		i = 0
		while i < n:
			r += a[i]
			if r % 2 == 0:
				print(i + 1)
				f = 1
				for j in range(1, i + 2):
					print(j, end=' ')
				print()
				break
			i += 1
		if f == 0:
			print(-1)


t = int(input())
for T in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	n = len(a)
	if n == 1:
		if a[0] % 2 == 1:
			print('-1')
		else:
			print('1')
			print('1')
	else:
		for i in range(n):
			if a[i] % 2 == 0:
				res = i + 1
				break
			else:
				res = -1
		if res == -1:
			print('2')
			print('1 2')
		else:
			print('1')
			print(res)


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split(' ')]
	if n == 1:
		if l[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif n == 2:
		if l[0] % 2 == 0 and l[1] % 2 == 0 or (l[0] % 2 != 0 and l[1] % 2 == 0):
			print(1)
			print(2)
		elif l[0] % 2 == 0 and l[1] % 2 != 0:
			print(1)
			print(1)
		else:
			print(2)
			print(1, 2)
	else:
		z = []
		for x in l:
			z.append(x % 2 == 0)
		f = 0
		if any(z):
			for i in range(len(l)):
				if l[i] % 2 == 0:
					f = i
					break
			print(1)
			print(f + 1)
		else:
			print(2)
			print(1, 2)


for i in range(int(input())):
	int(input())
	a = list(map(int, input().split()))
	if a[0] % 2 == 0:
		print(1)
		print(1)
	elif len(a) == 1 and a[0] % 2 == 1:
		print(-1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	elif a[0] % 2 == 1 and a[1] % 2 == 1:
		print(2)
		print('1 2')


rr = lambda : input().strip()
rri = lambda : int(rr())
rrm = lambda : [int(x) for x in rr().split()]
from sys import stdin, stdout, setrecursionlimit

def sol():
	n = rri()
	nums = rrm()
	od = 2
	for (i, v) in enumerate(nums):
		if v % 2 == 0:
			print(1)
			print(i + 1)
			return
		else:
			od -= 1
			if od == 0:
				print(2)
				print(1, 2)
				return
	print(-1)
	return
	return

def main():
	T = rri()
	for t in range(1, T + 1):
		ans = sol()
main()


test_cases = int(input())
data = []
while test_cases > 0:
	rand = input()
	data.append(list(map(int, input().split())))
	test_cases -= 1
for i in range(0, len(data)):
	if len(data[i]) == 1:
		if data[i][0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		even = [i for i in data[i] if i % 2 == 0]
		odd = [i for i in data[i] if i % 2 != 0]
		if len(even) > 0:
			print(1)
			print(data[i].index(even[0]) + 1)
		else:
			print(2)
			print(data[i].index(odd[0]) + 1, data[i].index(odd[0]) + 2)


t = int(input())
list = []
leng = []
for a in range(1, t + 1):
	templist = []
	n = int(input())
	templist = input().split()
	for x in templist:
		x = int(x)
	if n == 1 and int(templist[0]) % 2 == 1:
		list.append(int(-1))
	else:
		for x in range(0, n):
			if int(templist[x]) % 2 == 0:
				list.append(str(x + 1) + '1')
				break
		else:
			list.append('212')
for n in range(0, len(list)):
	if list[n] == -1:
		print('-1')
	elif list[n] == '212':
		print('2')
		print('1 2')
	else:
		print('1')
		print(str(list[n])[0:len(str(list[n])) - 1])


t = int(input())
for case in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	if n == 1:
		if arr[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif arr[0] % 2 == 0:
		print(1)
		print(1)
	elif arr[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


n = int(input())
c = 0
lst = []
for i in range(0, n * 2):
	ele = input()
	lst.append(ele)
print()
for i in range(1, len(lst), 2):
	c = 0
	s = 0
	lst_index = []
	lst[i] = lst[i].split()
	lst[i - 1] = int(lst[i - 1])
	for j in range(len(lst[i])):
		lst[i][j] = int(lst[i][j])
		if lst[i][j] % 2 == 0:
			print(1)
			print(j + 1)
			break
		else:
			s += lst[i][j]
			c += 1
			lst_index.append(j + 1)
			if s % 2 == 0:
				print(c)
				print(*lst_index, sep=' ')
				break
			elif s % 2 != 0 and j == len(lst[i]) - 1:
				print(-1)
				break


def even(n, l):
	l1 = []
	for i in range(n):
		if l[i] % 2 == 0:
			l1.append(i + 1)
			return l1
	if len(l) <= 1:
		return l1
	i = 0
	while i < 2 and i < n:
		l1.append(i + 1)
		i += 1
	return l1
for _ in range(int(input())):
	n = int(input())
	l1 = list(map(int, input().split()))
	l = even(n, l1)
	if len(l) == 0:
		print(-1)
	else:
		print(len(l))
		print(' '.join(map(str, l)))


t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(j) for j in input().split()]
	ans = -1
	if n == 1 and arr[0] % 2 == 1:
		print(-1)
		continue
	for i in range(n):
		if arr[i] % 2 == 0:
			ans = i + 1
			break
	if ans != -1:
		print(1)
		print(ans)
		continue
	for i in range(n):
		if arr[i] % 2 == 1:
			one = i + 1
			ind = i + 1
			break
	for i in range(ind, n):
		if arr[i] % 2 == 1:
			two = i + 1
			break
	print(2)
	print(one, two)


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	res = ''
	index = []
	val = []
	count = 0
	for i in l:
		if i % 2 == 0:
			res = '1\n' + str(l.index(i) + 1)
			break
		else:
			if count == 1:
				res = '2\n1 2'
				break
			val.append(i)
			index.append(l.index(i) + 1)
			count += 1
	if res == '':
		res += '-1'
	print(res)


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		odd = [] * 2
		even = False
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				even = True
				break
			elif len(odd) != 2:
				if a[i] not in odd:
					odd.append(i + 1)
				elif a[i] in odd and i == n - 1:
					odd.append(i + 1)
		if even == False:
			print(2)
			print(odd[0], odd[1])


import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(item) for item in input().split()]
	if len(a) == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
		continue
	if a[0] % 2 == 0:
		print(1)
		print(1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


def solve():
	n = int(input())
	l = list(map(int, input().split()))
	a = []
	b = []
	for i in range(n):
		if l[i] & 1:
			a.append(i + 1)
		else:
			b.append(i + 1)
	if b:
		print(len(b))
		print(*b)
	elif len(a) > 1:
		print(2)
		print(a[0], a[1])
	else:
		print('-1')
for i in range(int(input())):
	solve()


import sys
import math
import bisect

def solve(A):
	n = len(A)
	for i in range(n):
		if A[i] % 2 == 0:
			return [i]
	if n == 1:
		return []
	return [0, 1]

def main():
	for _ in range(int(input())):
		n = int(input())
		A = list(map(int, input().split()))
		B = solve(A)
		if len(B) == 0:
			print(-1)
		else:
			print(len(B))
			print(' '.join(list((str(a + 1) for a in B))))
main()


gi = lambda : list(map(int, input().split()))
for k in range(gi()[0]):
	(n,) = gi()
	a = gi()
	x = -1
	flag = False
	for j in range(n):
		e = a[j]
		if e % 2 == 0:
			x = j
			print(1)
			print(j + 1)
			flag = True
			break
		if e % 2:
			if x != -1:
				print(2)
				print(x + 1, j + 1)
				flag = True
				break
			x = j
	if not flag:
		print(-1)


t = int(input())
for i in range(0, t):
	n = int(input())
	l = list(map(int, input().strip().split()))[:n]
	s = sum(l)
	k = 1
	a = len(l)
	z = []
	f = []
	for j in range(0, a):
		if l[j] % 2 == 0:
			z.append(j + 1)
		else:
			f.append(j + 1)
		if len(z) == 1 or len(f) == 2:
			k = 0
			break
	if k == 1:
		print('-1')
	elif len(f) == 2:
		print(len(f))
		for h in f:
			print(h, end=' ')
		print(' ')
	else:
		print(len(z))
		for h in z:
			print(h, end=' ')
		print('')


def main():
	n = int(input())
	lst = list(map(int, input().split()))
	if len(lst) == 1:
		if lst[0] % 2 == 0:
			print(1)
			print(1)
			return
		else:
			print(-1)
			return
	elif lst[0] % 2 == 0:
		print(1)
		print(1)
		return
	elif lst[1] % 2 == 0:
		print(1)
		print(2)
		return
	else:
		print(2)
		print('1 2')
		return
t = int(input())
for i in range(t):
	main()


n = int(input())
for i in range(n):
	s = int(input())
	t = list(map(int, input().split()))
	if s == 1 and t[0] % 2 == 1:
		print(-1)
	even_found = False
	for (ind, j) in enumerate(t):
		if j % 2 == 0:
			even_found = True
			print(1)
			print(ind + 1)
			break
	if not even_found and s != 1:
		print(2)
		print(1, 2)


cases = int(input())
ans = []
for i in range(cases):
	len_ = int(input())
	arr = list(map(lambda x: int(x), input().split()))
	rarr = []
	sum_ = 0
	for j in range(len_):
		rarr.append(j + 1)
		sum_ += arr[j]
		if arr[j] % 2 == 0:
			rarr = [j + 1]
			break
		if sum_ % 2 == 0:
			break
		elif j == len_ - 1:
			rarr = []
	ans.append(rarr)
for item in ans:
	rlen = len(item)
	if rlen != 0:
		print(rlen)
		for i in range(rlen):
			print(item[i], end=' ')
		print()
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 != 0:
		print(-1)
		continue
	elif n == 1:
		print(1)
		print(1)
		continue
	else:
		flag = False
		idx = -1
		i1 = i2 = -1
		for i in range(n):
			if a[i] % 2 == 0:
				flag = True
				idx = i
				break
			elif i1 == -1:
				i1 = i
			else:
				i2 = i
		if flag:
			print(1)
			print(idx + 1)
		else:
			print(2)
			print(i1 + 1, i2 + 1)


t = int(input())
for i in range(0, t):
	n = int(input())
	l = list(map(int, input().split()))
	ans = []
	for i in range(0, n):
		if l[i] % 2 == 0:
			ans.append(i + 1)
			break
	if len(ans) != 0:
		print(1)
		print(ans[0])
	elif n >= 2:
		print(2)
		print('1 2')
	else:
		print(-1)


no_of_test_case = int(input())
for i in range(no_of_test_case):
	elements = int(input())
	input_list = [int(element) for element in input().split()]
	sum_list = 0
	length_of_sum_list = 0
	for element in range(len(input_list)):
		length_of_sum_list += 1
		sum_list += input_list[element]
		if sum_list % 2 == 0:
			print(length_of_sum_list)
			x = [item + 1 for item in range(length_of_sum_list)]
			print(*x, sep=' ')
			break
		elif input_list[element] % 2 == 0:
			print('1')
			print(element + 1)
			break
	else:
		print('-1')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 != 0:
		print('-1')
	else:
		b = []
		for i in range(n):
			if a[i] % 2 == 0:
				b.append(i)
				break
		if len(b) != 0:
			print('1')
			print(b[0] + 1)
		else:
			print('2')
			print(1, 2)


for i in range(int(input())):
	n = int(input())
	a = list(map(lambda x: int(x) % 2, input().split()))
	c = 0
	f = False
	for i in range(n):
		if a[i] == 0:
			f = True
			ans = [i + 1]
			break
		elif c == 0:
			c += 1
			ans = [i + 1]
		elif c == 1:
			ans.append(i + 1)
			f = True
			break
	if f:
		print(len(ans))
		print(' '.join(map(str, ans)))
	else:
		print(-1)


def subset(arr):
	indexes = []
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		else:
			indexes.append(i + 1)
		if len(indexes) == 2:
			print(2)
			print(indexes[0], indexes[1])
			return
	print(-1)
	return
test_cases = int(input())
(number_ofele, arrs) = ([], [])
for i in range(test_cases):
	number_ofele.append(int(input()))
	arr = [int(ele) for ele in input().split()]
	arrs.append(arr)
for ele in arrs:
	subset(ele)


def read_tokens():
	return input().strip().split(' ')

def read_ints():
	return [int(s) for s in read_tokens()]

def process_subset(arr, sofar):
	sum_so_far = 0
	for (idx, el) in enumerate(sofar):
		if el == 1:
			sum_so_far += arr[idx]
	return sum_so_far

def compute_subset(n, arr, sofar, ans):
	if not ans:
		if not n:
			curr_sum = process_subset(arr, sofar)
			if curr_sum != 0 and curr_sum % 2 == 0:
				ans.append(sofar)
		else:
			compute_subset(n - 1, arr, sofar + [0], ans)
			compute_subset(n - 1, arr, sofar + [1], ans)
(T,) = read_ints()
for test in range(T):
	(n,) = read_ints()
	arr = read_ints()
	ans = []
	compute_subset(len(arr), arr, [], ans)
	if not ans:
		print(-1)
	else:
		first = ans[0]
		c = sum((1 for el in first if el == 1))
		print(c)
		for (idx, el) in enumerate(first):
			if el == 1:
				print(f'{idx + 1} ', end='')
		print()


n = int(input())
while n != 0:
	n1 = int(input())
	arr = [int(x) for x in input().split()]
	if len(arr) == 1 and arr[0] % 2 != 0:
		print(-1)
		n = n - 1
		continue
	if arr[0] % 2 == 0:
		print(1)
		print(1)
	elif arr[0] % 2 != 0:
		if arr[1] % 2 == 0:
			print(1)
			print(2)
		else:
			print(2)
			print(f'1 2')
	n = n - 1


def evensum(arr):
	i = 1
	cnt = 0
	a = []
	for f in arr:
		if f % 2 == 0:
			a.append(str(i))
			return a
		elif f % 2 != 0:
			cnt += 1
		if cnt == 2:
			a.append(str(i - 1))
			a.append(str(i))
			return a
		i += 1
n = int(input())
while n > 0:
	x = int(input())
	arr = [int(f) for f in input().split()]
	if sum(arr) % 2 == 0:
		print(len(arr))
		for f in range(1, len(arr) + 1):
			print(f, end=' ')
	elif len(arr) == 1:
		print('-1')
	else:
		print(len(evensum(arr)))
		print(' '.join(evensum(arr)))
	n -= 1


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))

	def func(n, a):
		count = 0
		k = []
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				return i + 1
			else:
				count += 1
				k.append(str(i + 1))
				if count == 2:
					print(2)
					return ' '.join(k)
		return -1
	print(func(n, a))


def have_even_subset(array):
	if not array:
		return []
	first = array[0]
	if first % 2 == 0:
		return [1]
	if len(array) == 1:
		return []
	second = array[1]
	if second % 2 == 0:
		return [2]
	return [1, 2]
test_number = int(input())
for _ in range(test_number):
	_ = input()
	array = [int(x) for x in input().split()]
	result = have_even_subset(array)
	if not result:
		print('-1')
		continue
	print(len(result))
	print(' '.join([str(x) for x in result]))


q = int(input())
for _ in range(q):
	n = int(input())
	l = list(map(int, input().split()))
	if len(l) == 1 and l[0] % 2 == 1:
		print(-1)
		continue
	w = -1
	e = -1
	odd = []
	for i in range(n):
		if l[i] % 2 == 0:
			e = i + 1
			break
		else:
			odd.append(i + 1)
			if len(odd) == 2:
				break
	if e != -1:
		print(1)
		print(e)
	else:
		print(2)
		print(*odd)


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split(' ')))
	(x, y, z) = (-1, -1, -1)
	for i in range(n):
		if a[i] % 2 == 0:
			z = i + 1
			break
		elif x == -1:
			x = i + 1
		else:
			y = i + 1
			break
	if z != -1:
		print(1)
		print(z)
	elif y != -1:
		print(2)
		print(x, y)
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	f = 0
	for i in a:
		if i % 2 == 0:
			f = 1
	if f:
		indx = 0
		for i in range(n):
			if a[i] % 2 == 0:
				indx = i + 1
				break
		print(1)
		print(indx)
	else:
		c1 = 0
		c2 = 0
		for i in range(n):
			if a[i] % 2 == 1:
				if c1 == 0:
					c1 = i + 1
				else:
					c2 = i + 1
		if c1 != 0 and c2 != 0:
			print(2)
			print(c1, c2)
		else:
			print(-1)


t = int(input())
for tt in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif n >= 2:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		elif a[1] % 2 == 0:
			print(1)
			print(2)
		else:
			print(2)
			print(1, 2, sep=' ', end='\n')


testCase = int(input())
for i1 in range(testCase):
	length = int(input())
	elements = list(map(int, input().split()))
	nEven = 0
	nOdd = 0
	if length == 1:
		if elements[0] % 2 == 0:
			print('1')
			print('1')
		else:
			print('-1')
	elif elements[0] % 2 == 0:
		print('1')
		print('1')
	elif elements[1] % 2 == 0:
		print('1')
		print('2')
	elif elements[0] % 2 == 1 and elements[0] % 2 == 1:
		print('2')
		print('1 2')
	else:
		print('-1')


n = int(input())
ans = []
for _ in range(n):
	t = int(input())
	a = list(map(int, input().split()))
	check = False
	for i in range(1, 1 << t):
		tmp = 0
		anslist = []
		for j in range(t):
			if i >> j & 1:
				tmp += a[j]
				anslist.append(j)
		if tmp % 2 == 0:
			ans.append(anslist)
			check = True
			break
	if check == False:
		ans.append([-1])
for i in ans:
	L = [str(a + 1) for a in i]
	L = ' '.join(L)
	if L == '0':
		L = '-1'
	else:
		print(len(i))
	print(L)


import sys
from sys import stdin

def solve():
	test = int(input())
	for numTest in range(0, test):
		n = int(input())
		a = list(map(int, input().split()))
		pos_even = -1
		pos_odd = []
		for i in range(0, n):
			if a[i] % 2 == 0:
				pos_even = i
			else:
				pos_odd.append(i)
		if pos_even > -1:
			print(1, pos_even + 1, sep='\n')
		elif len(pos_odd) > 1:
			if len(pos_odd) % 2 == 1:
				pos_odd.pop()
			print(len(pos_odd))
			for p in pos_odd:
				print(p + 1, end=' ')
		else:
			print(-1)

def main():
	solve()
main()


t = int(input())
for i in range(t):
	n = int(input())
	lst = list(map(int, input().split()))
	flag = 0
	for j in range(n):
		if lst[j] % 2 == 0:
			flag = 1
			break
	if flag:
		print(1)
		print(j + 1)
	elif n == 1:
		print(-1)
	else:
		print(2)
		print(1, 2)


def int_as_array(num):
	return list(map(int, [y for y in str(num)]))

def array_as_int(arr):
	return int(''.join(map(str, arr)))

def read_int():
	return int(input())

def read_int_array():
	return list(map(int, input().split(' ')))

def int_array_to_string(arr, sep=' '):
	return sep.join(map(str, arr))

def solve(array):
	if len(array) == 0:
		return print(-1)
	s = sum(array)
	removal_index = None
	if s % 2 == 0:
		print(len(array))
	else:
		if len(array) == 1:
			return print(-1)
		for (i, x) in enumerate(array):
			if x % 2 == 1:
				removal_index = i
				break
		if removal_index is None:
			return print(-1)
		print(len(array) - 1)
	indexes = []
	for (i, x) in enumerate(array):
		if i != removal_index:
			indexes.append(i + 1)
	print(int_array_to_string(indexes))
T = read_int()
for i in range(T):
	N = read_int()
	numbers = read_int_array()
	solve(numbers)


def I():
	return list(map(int, input().split()))
for __ in range(int(input())):
	n = int(input())
	x = I()
	f = 0
	for i in range(n):
		if x[i] % 2 == 0:
			f = 1
			break
	if f:
		print(1)
		print(i + 1)
	elif n == 1:
		print(-1)
	else:
		print(2)
		print(1, 2)


t = int(input())
for i in range(t):
	n = int(input())
	a = []
	ans = -1
	yo = input()
	yo = yo.split()
	for j in range(len(yo)):
		a.append(int(yo[j]))
	if len(a) == 1:
		if a[0] % 2 == 0:
			ans = 1
			print(1)
			print(ans)
		else:
			print(ans)
		continue
	evn = [0, 0]
	od = [0, 0, 0]
	for j in range(len(a)):
		if a[j] % 2 == 0:
			evn[0] = 1
			evn[1] = j + 1
			break
		elif od[0] == 0:
			od[0] = 1
			od[1] = j + 1
		elif od[0] == 1:
			od[0] = 2
			od[2] = j + 1
		elif od[0] == 2:
			break
	if evn[0] == 1:
		print(1)
		print(evn[1])
	elif od[0] == 2:
		print(2)
		print(od[1], od[2])
	else:
		print(ans)


from sys import stdin, stdout
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	arr = list(map(int, stdin.readline().split()))
	even = []
	odd = []
	for i in range(n):
		if arr[i] % 2 == 0:
			even.append(i + 1)
		else:
			odd.append(i + 1)
	if len(even) != 0:
		print('1\n' + str(even[0]))
	elif len(odd) > 1:
		print('2\n' + ' ' + str(odd[0]) + ' ' + str(odd[1]))
	else:
		print('-1')


for i in range(int(input())):
	n = int(input())
	a = tuple(map(int, input().split()))
	for i in range(n):
		if a[i] % 2 == 0:
			print(1, i + 1)
			break
	else:
		if n == 1:
			print(-1)
		else:
			print(2, 1, 2)


t = int(input())
for _ in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	e = []
	o = []
	for i in range(n):
		if A[i] % 2 == 0:
			e.append(i + 1)
		else:
			o.append(i + 1)
	if e != []:
		print(1)
		print(e[0])
	elif len(o) <= 1:
		print(-1)
	else:
		print(2)
		print(o[0], o[1])


from sys import stdin
T = int(input())
for _ in range(T):
	(n,) = map(int, stdin.readline().split())
	arr = list(map(int, stdin.readline().split()))
	index = []
	c = 0
	zz = False
	for i in range(n):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			zz = True
			break
		else:
			c += 1
			index.append(i + 1)
			if c == 2:
				print(2)
				print(' '.join(map(str, index)))
				zz = True
				break
	if zz:
		continue
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	d = {'odd': [], 'even': []}
	for (j, k) in zip(l, range(len(l))):
		if j % 2 == 0:
			d['even'].append(k)
		else:
			d['odd'].append(k)
	if len(l) == 1:
		if len(d['odd']) == 1:
			print(-1)
		else:
			print(1)
			print(1)
	elif len(d['even']) >= 1:
		print(1)
		x = d['even']
		print(x[0] + 1)
	else:
		x = d['odd']
		print(2)
		print(x[0] + 1, x[1] + 1)


import sys
input = sys.stdin.readline
from collections import *
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 == 1:
		print(-1)
		continue
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
	else:
		print(2)
		print(1, 2)


from sys import stdin, stdout
t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, stdin.readline().split()))
	(l1, l2, l3, l4) = ([], [], [], [])
	for j in range(n):
		if l[j] % 2 == 0:
			l1.append(l[j])
			l2.append(j)
		else:
			l3.append(l[j])
			l4.append(j)
	if len(l1) == 0:
		if len(l3) < 2:
			print(-1)
		else:
			print(2)
			print(l4[0] + 1, l4[1] + 1)
	else:
		print(1)
		print(l2[0] + 1)


n = int(input())
for i in range(n):
	s = int(input())
	s1 = list(map(int, input().split()))
	k = 0
	for i in range(s):
		if s1[i] % 2 == 0:
			k = i + 1
			print(1)
			print(k)
			break
	if s >= 2:
		if k == 0:
			print(2)
			print('1' + ' ' + '2')
	if s == 1:
		if k == 0:
			print(-1)


t = int(input())
for i in range(0, t):
	n = int(input())
	a = input().split(' ')
	ans = 0
	for it in range(0, n):
		if int(a[it], 10) % 2 == 0:
			ans = it + 1
			break
	if ans:
		print('1')
		print(ans)
	elif n > 1:
		print('2')
		print('1 2')
	else:
		print('-1')


from sys import stdin, stdout
LI = lambda : list(map(int, input().split()))
MAP = lambda : map(int, input().split())
IN = lambda : int(input())
S = lambda : input()
import math
from collections import Counter

def solve():
	n = IN()
	a = LI()
	o = 0
	b = []
	for i in range(n):
		if a[i] % 2:
			o += 1
		else:
			b.append(i + 1)
			break
	if b:
		print(1)
		print(*b)
	elif o % 2 == 0:
		print(n)
		print(*list(range(1, n + 1)))
	elif n == 1:
		print(-1)
	else:
		print(2)
		print(1, 2)
for i in range(IN()):
	solve()


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(v) for v in input().split()]
	q = [j + 1 for j in range(n)]
	p = sum(a)
	if p % 2 != 0:
		x = -1
		v = 0
		while v < n:
			if a[v] % 2 != 0:
				x = v
				del q[v]
				break
			v = v + 1
		if n == 1:
			print(-1)
		elif x == -1:
			print(x)
		else:
			print(n - 1)
			print(' '.join(map(str, q)))
	else:
		print(n)
		print(' '.join(map(str, q)))


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	b = -1
	c = 0
	d = 0
	f = []
	for i in range(n):
		if a[i] % 2 == 0:
			c = 1
			b = i + 1
			break
	if b != -1:
		print(c)
		print(b)
	else:
		for j in range(n):
			d += a[j]
			f.append(j + 1)
			if d % 2 == 0:
				print(j + 1)
				print(*f)
				d = 0
				break
		if d != 0:
			print('-1')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	b = len(a)
	if b == 1 and a[0] % 2 != 0:
		print(-1)
	else:
		flag = 0
		for j in range(b):
			if a[j] % 2 == 0:
				flag = 1
				print(1)
				print(j + 1)
				break
		if flag == 0:
			lst = []
			cnt = 0
			for j in range(b):
				if a[j] % 2 != 0:
					lst.append(j + 1)
					cnt = cnt + 1
				if cnt == 2:
					print(2)
					print(*lst)
					break


from math import *
sInt = lambda : int(input())
mInt = lambda : map(int, input().split())
lInt = lambda : list(map(int, input().split()))
t = sInt()
for _ in range(t):
	n = sInt()
	a = lInt()
	if n == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		d = 0
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				d = 1
				break
		if d == 0:
			ans = []
			for i in range(n):
				if a[i] % 2 == 1:
					ans.append(i + 1)
				if len(ans) == 2:
					break
			print(2)
			print(*ans, sep=' ')
			d = 1
		if d == 0:
			print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	ans = -1
	if n == 1:
		if a[0] % 2 == 0:
			ans = [1]
		else:
			ans = -1
	elif a[0] % 2 == 0:
		ans = [1]
	elif a[1] % 2 == 0:
		ans = [2]
	else:
		ans = [1, 2]
	if ans == -1:
		print(ans)
	elif len(ans) == 1:
		print(1)
		print(*ans)
	else:
		print(2)
		print(*ans)


for _ in range(int(input())):
	n = int(input())
	lst = list(map(int, input().split()))
	even = odd = 0
	indexEven = []
	indexOdd = []
	for i in range(n):
		if lst[i] % 2 == 0:
			even = 1
			indexEven = [i + 1]
			break
		if lst[i] % 2 != 0:
			indexOdd.append(i + 1)
			odd += 1
			if odd == 2:
				break
	if even != 0:
		print(1)
		print(*indexEven)
	elif odd >= 2:
		print(2)
		print(*indexOdd)
	else:
		print(-1)


tcases = int(input())
for t in range(tcases):
	n = int(input())
	a = [int(x) for x in input().split(' ')]
	cnt_odd = 0
	cnt_even = 0
	even_index = []
	odd_index = []
	for i in range(n):
		if a[i] % 2 == 0:
			even_index.append(i)
		if a[i] % 2 == 1:
			odd_index.append(i)
	if len(even_index) >= 1:
		print('1')
		print(even_index[0] + 1)
	elif len(odd_index) >= 2:
		print('2')
		print(odd_index[0] + 1, ' ', odd_index[1] + 1)
	else:
		print('-1')


def main():
	from sys import stdin, stdout
	for _ in range(int(stdin.readline())):
		n = int(stdin.readline())
		arr = list(map(int, stdin.readline().split()))
		if sum(arr) & 1:
			odd = 0
			even = 0
			ans = []
			for i in arr:
				if i & 1:
					odd += 1
				else:
					even += 1
			if odd & 1:
				odd -= 1
			if odd == 0 and even == 0:
				stdout.write('-1\n')
			else:
				for i in range(n):
					if arr[i] & 1:
						if odd:
							odd -= 1
							ans.append(i + 1)
					else:
						ans.append(i + 1)
				stdout.write(str(len(ans)) + '\n')
				for i in ans:
					stdout.write(str(i) + ' ')
				stdout.write('\n')
		else:
			stdout.write(str(n) + '\n')
			for i in range(n):
				stdout.write(str(i + 1) + ' ')
			stdout.write('\n')
main()


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	k = 0
	m = []
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		if a[i] % 2 == 1:
			k += 1
			m.append(i + 1)
			if k == 2:
				print(2)
				for u in range(2):
					print(m[u], end=' ')
				break
			elif i == n - 1 and k == 1:
				print(-1)


def isEven(x):
	if x % 2 == 0:
		return True
	return False

def isEven2(tab):
	sum = 0
	for x in tab:
		sum += x
	if isEven(sum):
		return True
	return False

def print_line(_tab):
	_str = ''
	for x in _tab:
		_str += str(x) + ' '
	print(_str)
size_test = int(input())
for test in range(0, size_test):
	_size_data = int(input())
	_data = str(input()).split(' ')
	_done = False
	for i in range(0, _size_data):
		if isEven(int(_data[i])):
			print(1)
			print(i + 1)
			_done = True
			break
	if not _done:
		_tab = []
		_res = []
		for i in range(0, _size_data):
			_tab.append(int(_data[i]))
			_res.append(i + 1)
			if isEven2(_tab):
				print(len(_tab))
				print_line(_res)
				_done = True
				break
	if not _done:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	flag = 1
	for i in range(len(a)):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 0
			break
	if flag:
		if len(a) > 1:
			print(2)
			print(1, 2)
		else:
			print(-1)


T = int(input())
for _ in range(T):
	n = int(input())
	a = [int(i) for i in input().split()]
	if n == 1 and a[0] % 2 == 0:
		print(1)
		print(1)
	elif n == 1 and a[0] % 2 != 0:
		print(-1)
	else:
		ans = False
		ls = a[:3]
		for i in ls:
			if i % 2 == 0:
				ans = True
				an = i
				break
		if ans is True:
			print(1)
			print(ls.index(an) + 1)
		else:
			print(2)
			print('1 2')


for _ in range(int(input())):
	n = int(input())
	a = [int(__) for __ in input().split()]
	if len(a) == 1:
		if a[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
		continue
	ans = []
	ans2 = 0
	for i in range(len(a)):
		if a[i] % 2 == 0:
			ans2 = i + 1
			break
		elif len(ans) < 2:
			ans.append(i + 1)
		else:
			break
	if len(ans) == 2:
		print(2)
		print(ans[0], ans[1])
	else:
		print(1)
		print(ans2)


t = int(input())
test_cases = [(input(), input()) for i in range(t)]

def solve(test_case):
	n = int(test_case[0])
	A = list(map(int, test_case[1].split()))
	if len(A) == 1 and A[0] % 2 == 1:
		print(-1)
		return
	if A[0] % 2 == 0:
		print(1)
		print(1)
	elif A[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')
for test_case in test_cases:
	solve(test_case)


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	ind = 0
	flag = 0
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			flag = 1
			ind = i + 1
			break
	if flag == 1:
		print(1)
		print(ind)
	else:
		odd = 0
		ls = []
		for i in range(len(arr)):
			if arr[i] % 2 != 0:
				odd += 1
				ls.append(i + 1)
			if odd == 2:
				break
		if odd == 2:
			print(2)
			print(' '.join(map(str, ls)))
		else:
			print(-1)


n = int(input())

def f(arr):
	if not arr:
		return -1
	if len(arr) == 1:
		if arr[0] % 2 == 1:
			return -1
		else:
			return [1, '1']
	if all((i % 2 == 1 for i in arr)):
		return [2, '1 2']
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			return [1, str(i + 1)]
for _ in range(n):
	lena = int(input())
	res = f([int(i) for i in input().split(' ')])
	if res == -1:
		print(-1)
	else:
		print(res[0])
		print(res[1])


x = int(input())
for a in range(x):
	tam = int(input())
	valores = list(map(int, input().split()))
	flag = False
	for b in range(tam):
		if valores[b] % 2 == 0:
			print(1)
			print(b + 1)
			flag = True
			break
	if flag == False:
		impar = []
		for b in range(tam):
			if valores[b] % 2 == 1:
				impar.append(b)
				if len(impar) == 2:
					print(len(impar))
					print(impar[0] + 1, ' ', impar[1] + 1)
					flag = True
					break
		if flag == False:
			print(-1)


import math as mt
import sys, string, bisect
input = sys.stdin.readline
import random
from collections import deque, defaultdict
L = lambda : list(map(int, input().split()))
Ls = lambda : list(input().split())
M = lambda : map(int, input().split())
I = lambda : int(input())
t = I()
for _ in range(t):
	n = I()
	l = L()
	c = 0
	x = []
	f = 0
	for i in range(n):
		if l[i] % 2 == 1:
			c += 1
			x.append(i + 1)
		if l[i] % 2 == 0 or c == 2:
			f = 1
			if l[i] % 2 == 0:
				print(1)
				print(i + 1)
			else:
				print(2)
				print(*x)
			break
	if f == 0:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	lx = [x % 2 for x in l]
	if lx.count(0) > 0:
		print(1)
		print(lx.index(0) + 1)
	elif lx.count(1) >= 2:
		print(2)
		print(1, 2)
	else:
		print(-1)


import math
t = int(input())
while t:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	(oddn, evenn) = (0, 0)
	pre = 0
	for (i, ele) in enumerate(a):
		if ele % 2:
			if oddn == 1:
				print(2)
				print(pre + 1, i + 1)
			oddn += 1
			pre = i
		else:
			evenn += 1
		if evenn == 1:
			print(1)
			print(i + 1)
			break
		if oddn == 2:
			break
	if evenn < 1 and oddn < 2:
		print(-1)


evens = '02468'
for _ in range(int(input())):
	input()
	a = input().split(' ', 2)
	if a[0][-1] in evens:
		print('1\n1')
	elif len(a) == 1:
		print('-1')
	elif a[1][-1] in evens:
		print('1\n2')
	else:
		print('2\n1 2')


from itertools import count
for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	counter = count(1)
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif next(counter) == 2:
			print(2)
			print(i, i + 1)
			break
		if i == len(a) - 1:
			print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	count2 = 0
	ans1 = []
	ans2 = []
	for i in range(n):
		if a[i] % 2 == 0:
			ans1.append(i + 1)
			break
		else:
			ans2.append(i + 1)
			count2 = count2 + 1
			if count2 % 2 == 0:
				break
	if len(ans1) == 1:
		print(1)
		print(ans1[0])
	elif count2 == 2:
		print(2)
		print(ans2[0], ans2[1])
	else:
		print(-1)


from sys import stdin

def main():
	readline = stdin.readline
	t = int(readline())
	res = []
	for _ in range(t):
		n = int(readline())
		a = list(map(int, readline().split()))
		for i in range(n):
			if a[i] % 2 == 0:
				res.append(1)
				res.append(i + 1)
				break
		else:
			if len(a) == 1:
				res.append(-1)
			else:
				res.append(2)
				res.append([1, 2])
	for i in range(len(res)):
		if res[i] == -1:
			print(-1)
		elif type(res[i]) == int:
			print(res[i])
		else:
			print(*res[i])
main()


for i in range(int(input())):
	t = int(input())
	s = list(map(int, input().split()))
	odd = []
	even = []
	for k in range(t):
		if s[k] % 2 == 0:
			even.append(k + 1)
		else:
			odd.append(k + 1)
	odd.sort()
	even.sort()
	if len(even) > 0:
		print(1)
		print(even[0])
	elif len(even) == 0 and len(odd) >= 2:
		print(2)
		print(*odd[0:2])
	else:
		print(-1)


for q in range(int(input())):
	firstOdd = False
	answer = None
	input()
	for (i, k) in enumerate(map(int, input().split())):
		if k % 2 == 0:
			answer = [i + 1]
			break
		if not firstOdd:
			firstOdd = True
			continue
		answer = [1, i + 1]
		break
	if answer is not None:
		print(len(answer))
		print(' '.join(map(str, answer)))
	else:
		print(-1)


for u in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	x = []
	y = []
	(xx, yy) = ([], [])
	(a, b) = (0, 0)
	for i in range(n):
		if l[i] % 2 == 0:
			x.append(l[i])
			xx.append(i + 1)
			a = a + 1
		else:
			y.append(l[i])
			yy.append(i + 1)
			b = b + 1
	if a == 0 and b <= 1:
		print(-1)
	elif a == 0 and b % 2 == 0:
		print(b)
		print(*yy)
	elif a == 0 and b % 2 == 1 and (b >= 2):
		print(b - 1)
		print(*yy[1:])
	else:
		print(a)
		print(*xx)


t = int(input())
for x in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	c = []
	k = 0
	if n == 1:
		if a[0] % 2 != 0:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			else:
				c.append([a[i], i])
				if (c[k][0] + c[k - 1][0]) % 2 == 0 and len(c) >= 2:
					print(2)
					print(str(c[k - 1][1] + 1) + ' ' + str(c[k][1] + 1))
					break
				k = k + 1


z = []
for i in range(1, int(input()) + 1):
	a = input()
	even = 0
	odd = 0
	even_array = []
	odd_array = []
	k = 1
	for j in map(int, input().split()):
		if j % 2:
			odd += 1
			odd_array += [k]
		else:
			even += 1
			even_array += [k]
		if even:
			z += [['1\n'] + even_array + ['\n']]
			break
		if odd == 2:
			z += [['2\n'] + odd_array + ['\n']]
			break
		k += 1
	if len(z) != i:
		z += [['-1\n']]
for i in z:
	print(*i)


sc = iter(open(0).read().split())
ni = lambda : int(next(sc))
ns = lambda : next(sc)

def solve():
	N = ni()
	A = [ni() for _ in range(N)]
	evens = [i for (i, a) in enumerate(A, 1) if a % 2 == 0]
	odds = [i for (i, a) in enumerate(A, 1) if a % 2 == 1]
	if evens:
		print(1)
		print(evens[0])
	elif len(odds) >= 2:
		print(2)
		print(*odds[:2])
	else:
		print(-1)
T = ni()
for _ in range(T):
	solve()


for _ in range(int(input())):
	n = int(input())
	l = [*map(int, input().split())]
	if len(l) == 1 and l[0] % 2 != 0:
		print(-1)
		continue
	if len(l) == 1 and l[0] % 2 == 0:
		print(1)
		print(1)
		continue
	for i in range(n - 1):
		if l[i] % 2 == 0 or l[i + 1] % 2 == 0:
			print(1)
			print(i + 1 if l[i] % 2 == 0 else i + 2)
			break
		else:
			print(2)
			print(i + 1, i + 2)
			break


t = int(input())
(o, e) = (0, 0)
os = []
es = 0
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	for i in range(n):
		x = arr[i]
		if x % 2 == 0:
			e += 1
			es = i + 1
		else:
			o += 1
			os.append(str(i + 1))
		if e == 1:
			print(1)
			print(es)
			break
		if o == 2:
			print(2)
			print(' '.join(os))
			break
	else:
		print(-1)
	os.clear()
	e = 0
	o = 0


t = int(input())
for x in range(t):
	n = int(input())
	ls = list(map(int, input().split()))
	od = 0
	for i in ls:
		if i % 2 == 0:
			print(1)
			print(ls.index(i) + 1)
			break
		else:
			od += 1
	if od == n and n >= 2:
		print(2)
		print(1, 2)
	elif od == n and n % 2 != 0:
		print(-1)


def main():
	t = int(input())
	for i in range(0, t):
		n = int(input())
		a = list(map(int, input().split()))
		cond = False
		for k in range(n):
			if a[k] % 2 == 0:
				print(1)
				print(k + 1)
				cond = True
				break
			else:
				for j in range(k + 1, n):
					if a[j] % 2 == 1:
						print(2)
						print(k + 1, j + 1)
						cond = True
						break
					else:
						print(1)
						print(j + 1)
						cond = True
						break
				if cond == True:
					break
		if cond == False:
			print(-1)
main()


from sys import stdin, stdout
input = stdin.readline
print = stdout.write

def main():
	t = int(input())
	for _ in [0] * t:
		n = int(input())
		odd = []
		even = []
		a = list(map(int, input().strip().split()))
		for i in range(n):
			if a[i] % 2:
				odd.append(i)
				if len(odd) == 2:
					break
			else:
				even.append(i)
				break
		if not even and len(odd) == 2:
			print(str(2) + '\n')
			for i in odd:
				print(str(i + 1) + ' ')
		elif even:
			print(str(1) + '\n')
			print(str(even[0] + 1))
		else:
			print(str(-1))
		print('\n')
main()


import math
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	flag = False
	for j in range(n):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			flag = True
			break
	if j == n - 1 and flag == False:
		if n > 1:
			print(2)
			print(1, 2)
		elif a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)


import sys

def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	s = input()
	return list(s[:len(s) - 1])

def invr():
	return map(int, input().split())

def main():
	for i in range(inp()):
		n = inp()
		ind = 0
		sum = 0
		indexes = []
		for e in inlt():
			if e % 2 == 0:
				print(1)
				print(ind + 1)
				break
			sum += e
			indexes.append(ind + 1)
			if sum % 2 == 0:
				print(len(indexes))
				print(*indexes, sep=' ')
				break
			ind += 1
			if ind == n:
				print(-1)
	return
main()


def solve(l):
	for i in range(l):
		n = int(input())
		a = input().split()
		f = 0
		g = ''
		for i in range(n):
			if int(a[i]) % 2 == 0:
				print(1)
				print(i + 1)
				break
			if n == 1:
				print(-1)
				break
			else:
				f = f + 1
				g += str(i + 1) + ' '
				if f == 2:
					print(f)
					print(g)
					break
solve(int(input()))


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	odd = []
	bad = True
	for i in range(n):
		x = a[i]
		if x & 1:
			odd.append(i + 1)
			if len(odd) == 2:
				print('2')
				print(odd[0], odd[1])
				bad = False
				break
		else:
			print('1')
			print(i + 1)
			bad = False
			break
	if bad:
		print('-1')


for _ in range(int(input())):
	n = int(input())
	lis = list(map(int, input().split()))
	c = []
	for i in range(n):
		if lis[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		c.append(i + 1)
	else:
		if len(c) > 1:
			print(2)
			print(*c[:2])
		else:
			print(-1)


t = int(input())
yu = '1\n'
yuu = '2\n'
for i in range(t):
	q = 0
	l = 0
	p = False
	n = int(input())
	a = input()
	a = a.split()
	for g in range(n):
		if int(a[g]) % 2 == 0 and p != True:
			print(yu + str(g + 1))
			p = True
			break
		if int(a[g]) % 2 == 1 and p != True:
			q += int(a[g])
			if q % 2 == 0:
				print(yuu + str(l + 1) + ' ' + str(g + 1))
				p = True
			l = g
	if p == False:
		print('-1')


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	o = []
	e = []
	for i in range(n):
		if len(o) == 2 or len(e) == 1:
			break
		if a[i] % 2 == 0:
			e.append(i + 1)
		else:
			o.append(i + 1)
	if len(o) == 2:
		print(2)
		o = [str(x) for x in o]
		print(' '.join(o))
	elif len(e) == 1:
		print(1)
		e = [str(x) for x in e]
		print(' '.join(e))
	else:
		print(-1)


for t in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	if a[0] % 2 and len(a) == 1:
		print(-1)
		continue
	for (i, j) in enumerate(a):
		if not j % 2:
			print(1)
			print(i + 1)
			break
	else:
		pos = []
		if len(a) > 1:
			for (k, l) in enumerate(a):
				if l % 2:
					pos.append(k + 1)
				if len(pos) == 2:
					print(2)
					print(*pos)
					break


import sys
t = int(sys.stdin.readline())
for _ in range(t):
	n = int(sys.stdin.readline())
	arr = list(map(int, sys.stdin.readline().split()))
	z = False
	ind = -1
	for i in range(n):
		if arr[i] % 2 == 0:
			z = True
			ind = i
			break
	if z:
		print(1)
		print(ind + 1)
	elif n < 2:
		print(-1)
	else:
		print(2)
		print(1, 2)


def main():
	t = int(input())
	for _ in range(t):
		n = int(input())
		a = list(map(int, input().split()))
		p = [x % 2 for x in a]
		o = [str(i + 1) for (i, x) in enumerate(p) if x]
		e = [str(i + 1) for (i, x) in enumerate(p) if not x]
		if len(e):
			print(len(e))
			print(' '.join(e))
		elif len(o) > 1:
			print(2)
			print(' '.join(o[:2]))
		else:
			print(-1)
main()


t = int(input())
for i in range(t):
	n = int(input())
	a = input()
	a = a.split(' ')
	check = False
	for j in range(n):
		if int(a[j]) % 2 == 0:
			check = True
			print(1)
			print(j + 1)
			break
	if check == False:
		for j in range(1, n):
			if int(a[j]) % 2 == 1:
				check = True
				print(2)
				print('1 ', j + 1)
				break
	if check == False:
		print(-1)


def rs():
	return input().rstrip()

def ri():
	return int(rs())

def ra():
	return list(map(int, rs().split()))

def is_odd(a):
	return a % 2 == 1

def is_even(a):
	return a % 2 == 0
t = ri()
for _ in range(t):
	n = ri()
	arr = ra()
	if len(arr) == 1:
		if is_odd(arr[0]):
			print(-1)
		else:
			print('1\n1')
	elif len(arr) > 1:
		f = arr[0]
		s = arr[1]
		if is_even(f):
			print('1\n1')
		elif is_even(s):
			print('1\n2')
		else:
			print(2)
			print(1, 2)


t = int(input())
ans = []
while t:
	n = int(input())
	a = list(map(int, input().split()))
	odd1 = 0
	odd2 = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			odd2 = -1
			break
		elif odd1 == 0:
			odd1 = i + 1
		else:
			odd2 = i + 1
	if odd1 > 0 and odd2 > 0:
		print(2)
		print(odd1, odd2)
	elif odd2 == 0:
		print(-1)
	t -= 1


t = int(input())
while t != 0:
	n = int(input())
	list1 = list(map(int, input().split()))
	if len(list1) == 1 and list1[0] % 2 != 0:
		print(-1)
	else:
		ind = list()
		flag = 0
		count = 0
		for i in range(len(list1)):
			if list1[i] % 2 == 0:
				print(1)
				print(i + 1)
				flag = 1
				break
			else:
				ind.append(i + 1)
				count += 1
				if count == 2:
					break
		if flag == 0:
			print(2)
			print(ind[0], ind[1])
	t -= 1


n = int(input())
for i in range(n):
	t = 0
	d = []
	k = int(input())
	m = list(map(int, input().split()))
	p = [h for h in range(1, len(m) + 1)]
	for j in range(k):
		if m[j] % 2 == 0:
			t = 1
			if len(d) > 0:
				d.remove(d[0])
			d.append(j + 1)
			break
		elif len(d) == 1:
			d.append(j + 1)
			t = 1
			break
		else:
			d.append(j + 1)
	if t == 1:
		print(len(d))
		print(*d)
	else:
		print(-1)


T = int(input())
for i in range(T):
	length = int(input())
	nums = list(map(int, input().split()))
	temp = -1
	check = 0
	for j in range(length):
		if nums[j] % 2 == 0:
			print(1)
			print(j + 1)
			check = 1
			break
		elif temp == -1:
			temp = j
		else:
			print(2)
			print(temp + 1, j + 1)
			check = 1
			break
	if check == 0:
		print(-1)


def check(s):
	if sum(s) % 2 == 0:
		return True
	else:
		return False

def solve(n, s):
	dp = []
	track = []
	for i in range(n):
		track.append(s[i])
		dp.append(i + 1)
		if check(track):
			print(len(track))
			print(' '.join(map(str, dp)))
			return
		for j in range(i + 1, n):
			track.append(s[j])
			dp.append(j + 1)
			if check(track):
				print(len(track))
				print(' '.join(map(str, dp)))
				return
			elif (s[i] + s[j]) % 2 == 0:
				print('YES')
				return
		track = []
		dp = []
	print('-1')
t = int(input())
for _ in range(t):
	n = int(input())
	ar = list(map(int, input().split()))
	solve(n, ar)


for t in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	(odd, even) = ([], [])
	for i in range(n):
		if l[i] % 2 == 0:
			even.append(i)
			break
		else:
			odd.append(i)
			if len(odd) == 2:
				break
	if len(even) == 0:
		if len(odd) == 1:
			print(-1)
		else:
			print(2)
			print(odd[0] + 1, odd[1] + 1)
	else:
		print(1)
		print(even[0] + 1)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	s = 0
	l1 = []
	f = 0
	for i in range(n):
		if l[i] % 2 == 0:
			f = 1
			c = i + 1
			break
		else:
			l1.append(i + 1)
			if len(l1) == 2:
				f = 2
				break
	if f == 0:
		print(-1)
	elif f == 1:
		print(1)
		print(c)
	else:
		print(2)
		print(*l1)


q = int(input())
for _ in range(q):
	N = int(input())
	A = list(map(int, input().split()))
	even = []
	odd = []
	for i in range(len(A)):
		if A[i] % 2 == 0:
			even.append(i + 1)
			break
		else:
			odd.append(i + 1)
	if even:
		print(1)
		print(even[0])
	elif len(odd) > 1:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)


for _ in range(int(input())):
	n = input()
	a = list(map(int, input().split()))
	aI = len(a) - 1
	removed = list()
	final = list()
	sums = 0
	for aV in a:
		sums += aV
	while sums % 2 != 0:
		if a[aI] % 2 != 0:
			removed.append(aI)
			sums -= a[aI]
		aI -= 1
	for i in range(len(a)):
		try:
			if i in removed:
				continue
			final.append(i + 1)
		except:
			final.append(i + 1)
	if len(final) == 0:
		print(-1)
	else:
		print(len(final))
		print(*final)


for i in range(int(input())):
	a = int(input())
	b = list(map(int, input().split()))
	v = []
	if len(b) == 1 and sum(b) % 2 != 0:
		print(-1)
	else:
		for j in range(len(b)):
			if b[j] % 2 == 0:
				print(1)
				print(j + 1)
				break
			else:
				v.append(j + 1)
			if len(v) == 2:
				print(2)
				print(*v)
				break


for _ in range(int(input())):
	b = int(input())
	a = list(map(int, input().split()))
	(ans, f) = ([], 0)
	for i in range(len(a)):
		if not f:
			if a[i] % 2 == 0:
				ans = [i + 1]
				f = 1
			elif a[i] % 2 == 1:
				ans.append(i + 1)
			if len(ans) == 2:
				f = 1
	if f:
		print(len(ans))
		print(*ans)
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	(odd1, odd2) = (-1, -1)
	evei = -1
	(o, e) = (0, 0)
	for i in range(n):
		if arr[i] % 2 == 0:
			e += 1
			evei = i + 1
			break
		elif o == 0:
			odd1 = i + 1
			o += 1
		elif o == 1:
			odd2 = i + 1
			o += 1
	if e >= 1:
		print(1)
		print(evei)
	elif o >= 2:
		print(2)
		print(odd1, odd2)
	else:
		print(-1)


t = int(input())
while t > 0:
	t = t - 1
	n = int(input())
	a = list(map(int, input().split()))
	s = sum(a)
	p = []
	while s % 2 != 0:
		for i in range(n):
			if a[i] % 2 != 0:
				s = s - a[i]
				p.append(i)
			if s % 2 == 0:
				break
	if len(a) == len(p):
		print(-1)
		continue
	print(len(a) - len(p))
	for i in range(n):
		if i not in p:
			print(i + 1, end=' ')
	print()


t = int(input())
for ab in range(t):
	n = int(input())
	kp = list(map(int, input().split()))
	kl = 0
	if n == 1 and kp[0] % 2 != 0:
		print(-1)
		continue
	count = 0
	for xy in range(n):
		count += kp[xy]
		if count % 2 == 0 and kp[xy] % 2 != 0:
			lx = list(range(xy + 1))
			lx = [str(x + 1) for x in lx]
			print(xy + 1)
			print(' '.join(lx))
			break
		elif kp[xy] % 2 == 0:
			print(1)
			print(xy + 1)
			break


t = int(input())
for i in range(t):
	index = -1
	index1 = -1
	elems = 0
	n = int(input())
	a = list(map(int, input().split()))
	for j in range(n):
		if a[j] % 2 == 0:
			index = j + 1
			elems = 1
			break
		elif index == -1:
			index = j + 1
		else:
			index1 = j + 1
			elems = 2
			break
	if elems == 1:
		print(elems)
		print(index)
	elif elems == 2:
		print(elems)
		print(index, index1)
	else:
		print(-1)


for i in range(int(input())):
	a = int(input())
	k = list(map(int, input().split()))
	s = 0
	f = 0
	for j in range(a):
		if k[j] % 2 == 0:
			print(1)
			print(j + 1)
			f = 1
			break
		else:
			s += k[j]
			if s % 2 == 0:
				print(j + 1)
				print(*[*range(1, j + 2)])
				f = 1
				break
	if f == 0:
		print(-1)


t = int(input())
while t:
	lol = 0
	n = int(input())
	l = list(map(int, input().split()))
	cou = 0
	ll = []
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			lol = 1
			break
		else:
			ll.append(i + 1)
			cou += 1
		if cou == 2:
			print(2)
			print(*ll)
			lol = 1
			break
	if lol == 0:
		print(-1)
	t -= 1


t = int(input())
for i in range(t):
	f = int(input())
	a = input().split()
	if int(a[0]) % 2 == 0:
		print(1)
		print(1)
	elif f > 1:
		col = 0
		ind = []
		for g in range(f):
			if int(a[g]) % 2 == 0:
				print(1)
				print(g + 1)
				break
			else:
				col += 1
				ind.append(g + 1)
				if col == 2:
					print(2)
					print(int(ind[0]), int(ind[1]))
					break
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	o2 = o1 = -1
	flag = True
	for e in a:
		if e % 2 == 0:
			print('1')
			print(a.index(e) + 1)
			flag = False
			break
	if flag:
		if len(a) == 1:
			print('-1')
		else:
			print('2')
			print('1 2')


kl = int(input())
for l in range(kl):
	n = int(input())
	s = [int(i) for i in input().split()]
	if n == 1:
		if s[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif s[0] % 2 == 0:
		print(1)
		print(1)
	elif s[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


t = int(input())
for ti in range(t):
	l = int(input())
	li = [int(i) for i in input().split(' ')]
	z1 = 0
	z2 = 0
	tmp = -1
	tmp2 = -1
	dn = -1
	for (idx, i) in enumerate(li):
		if i & 1:
			if z1:
				z2 = 1
				tmp2 = idx
			else:
				z1 = 1
				tmp = idx
		else:
			print(1)
			print(idx + 1)
			dn = 0
			break
	if z2 and dn == -1:
		print(2)
		print(tmp + 1, tmp2 + 1)
	elif dn == -1:
		print(-1)


a = int(input())
for j in range(a):
	n = int(input())
	l = list(map(int, input().split()))
	k = 1
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			k = 0
			break
	if k and n < 2:
		print(-1)
	if k and n > 1:
		print(2)
		print(1, 2)


t = int(input())
for i in range(t):
	n = int(input())
	array = [int(x) for x in input().split(' ')]
	output = 0
	finished = False
	for i in range(2):
		try:
			if array[i] % 2 == 0:
				print(1)
				print(i + 1)
				finished = True
				break
		except:
			print(-1)
			finished = True
			break
			pass
	if not finished:
		print(2)
		print(1, 2)


t = int(input())
for a in range(t):
	n = int(input())
	l = input().split()
	if n == 1 and int(l[0]) % 2 != 0:
		print(-1)
	else:
		odd = []
		for i in range(0, n):
			if int(l[i]) % 2 == 0:
				print(1)
				print(i + 1)
				break
			else:
				odd.append(i + 1)
			if len(odd) == 2:
				print(2)
				print(odd[0], odd[1])
				break


from sys import stdin

def func():
	return
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	arr = list(map(int, stdin.readline().split()))
	if n == 1:
		if arr[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		ans = []
		for i in range(n):
			if arr[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			else:
				ans.append(i + 1)
			if len(ans) == 2:
				print(2)
				print(*ans)
				break


t = int(input())
for test_case in range(0, t):
	n = int(input())
	l = input().split(' ')
	s = []
	for integer in l:
		s.append(int(integer))
	ok = False
	f = []
	for i in range(0, len(s)):
		if ok:
			break
		if s[i] % 2 == 0:
			f.append(i)
			ok = True
			break
		for j in range(i + 1, len(s)):
			if ok:
				break
			if (s[i] + s[j]) % 2 == 0:
				ok = True
				f.append(i)
				f.append(j)
				break
			for q in range(j + 1, len(s)):
				if (s[i] + s[j] + s[q]) % 2 == 0:
					f.append(i)
					f.append(j)
					f.append(q)
					ok = True
					break
	if len(f) > 0:
		print(len(f))
		for k in f:
			print(k + 1, end=' ')
		print()
	else:
		print(-1)


p = int(input())
for i in range(p):
	n = int(input())
	a = list(map(int, input().split()))
	(q2, w1, w2) = (-1, -1, -1)
	for i in range(n):
		if a[i] % 2 == 0:
			q2 = i
		if w1 == -1 and a[i] % 2 != 0:
			w1 = i
		elif a[i] % 2 != 0:
			w2 = i
	if q2 > -1:
		print(1)
		print(q2 + 1)
	elif w1 > -1 and w2 > -1:
		print(2)
		print(w1 + 1, w2 + 1)
	else:
		print(-1)


t = int(input().strip())
for _ in range(t):
	n = int(input().strip())
	arr = list(map(int, input().strip().split()))
	odd_found = False
	for i in range(n):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			if odd_found:
				print(i + 1)
				print(*range(1, i + 2))
				break
			odd_found = True
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	e = []
	o = []
	t1 = 0
	for i in range(len(a)):
		if a[i] % 2 == 0:
			e += [i + 1]
			break
		else:
			o += [i + 1]
			t1 += 1
			if t1 == 2:
				break
	if len(e) == 1:
		print(1)
		print(e[0])
	elif len(o) == 1:
		print(-1)
	else:
		print(2)
		print(o[0], o[1])


n = int(input())
for i in range(n):
	odd = []
	index = []
	x = int(input())
	nums = list(map(int, input().split()))
	for j in range(x):
		if nums[j] % 2 != 0:
			odd.append(nums[j])
			index.append(j + 1)
		elif nums[j] % 2 == 0:
			print(1)
			print(j + 1)
			break
		if len(odd) > 1:
			print(2)
			print(*index, sep=' ')
			break
		if j + 1 == x:
			print(-1)
			break


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	mark = 0
	po = 0
	od = 0
	po1 = 0
	po2 = 0
	for j in range(n):
		if l[j] % 2 == 0:
			po = j + 1
		else:
			od += 1
			if od == 1:
				po1 = j + 1
			else:
				po2 = j + 1
	if po != 0:
		print('1\n%d' % po)
	elif od >= 2:
		print('2\n%d %d' % (po1, po2))
	else:
		print('-1')


def f(L):
	for i in range(len(L)):
		if L[i] % 2 == 0:
			return [i]
	for i in range(len(L)):
		for j in range(i):
			if L[i] % 2 == L[j] % 2:
				return [j, i]
	return []
for _ in range(int(input())):
	n = int(input())
	L = list(map(int, input().split()))
	R = f(L)
	if len(R) == 0:
		print(-1)
	else:
		print(len(R))
		for i in R:
			print(i + 1, end=' ')
		print()


for _ in range(int(input())):
	n = int(input())
	nums = list(map(int, input().split()))
	dp = []
	f = [0, 0]
	eves = []
	ods = []
	for i in range(n):
		if nums[i] % 2 == 0:
			ods = [str(i + 1)]
			f[nums[i] % 2] += 1
			break
		else:
			eves.append(str(i + 1))
			f[nums[i] % 2] += 1
			if f[1] == 2:
				break
	if f[0] == 1:
		print(1)
		print(' '.join(ods))
	elif f[1] == 2:
		print(2)
		print(' '.join(eves))
	else:
		print(-1)


tests = int(input())

def sol():
	ln = input()
	st = input().split()
	if int(ln) == 1:
		print('-1' if int(st[0]) % 2 != 0 else '1\n1')
	else:
		print(int(st[0]) % 2 != 0 and (int(st[1]) % 2 != 0 and '2\n1 2' or '1\n2') or '1\n1')
for i in range(tests):
	v = sol()


t = int(input())
while t > 0:
	n = int(input())
	l_string = input()
	l = l_string.split(' ')
	l = [int(i) for i in l]
	odd_num = 0
	flag = 0
	for i in range(len(l)):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
		else:
			odd_num += 1
	if flag == 0:
		if odd_num > 1:
			print(2)
			print(1, 2)
		else:
			print(-1)
	t -= 1


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	e = []
	o = []
	nos = list(map(int, input().split()))
	for i in range(n):
		if nos[i] % 2 == 0:
			e.append(i)
		else:
			o.append(i)
	if len(e) < 1 and len(o) <= 1:
		print(-1)
	elif len(e) == 1:
		print(1)
		print(str(e[0] + 1))
	elif len(e) >= 2:
		print(2)
		print(str(e[0] + 1) + ' ' + str(e[1] + 1))
	else:
		print(2)
		print(str(o[0] + 1) + ' ' + str(o[1] + 1))


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	odd = []
	res = False
	for i in range(n):
		if a[i] & 1:
			odd.append(i + 1)
			if len(odd) > 1:
				print(len(odd))
				print(*odd)
				res = True
				break
		else:
			print(1)
			print(i + 1)
			res = True
			break
	if not res:
		print(-1)


from itertools import chain, combinations
t = int(input())
for _ in range(t):
	n = int(input())
	s = list(map(int, input().split()))
	x = len(s)
	q = []
	c = 1
	m = []
	w = []
	for i in range(1, 1 << x):
		y = sum([s[j] for j in range(x) if i & 1 << j])
		if y % 2 == 0:
			for j in range(x):
				if i & 1 << j:
					m.append(s[j])
					q.append(j)
			c = 0
			break
	if c:
		print(-1)
	else:
		print(len(m))
	if c:
		continue
	else:
		for k in range(len(q)):
			print(q[k] + 1, end=' ')
	print()


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and sum(a) % 2 != 0:
		print(-1)
	else:
		nch1 = -1
		nch2 = -1
		ch = -1
		for i in range(len(a)):
			if nch1 == -1 and a[i] % 2 == 1:
				nch1 = i + 1
			elif nch2 == -1 and nch1 != -1 and (a[i] % 2 == 1):
				nch2 = i + 1
				break
			elif a[i] % 2 == 0:
				ch = i + 1
				break
		if ch != -1:
			print(1)
			print(ch)
		else:
			print(2)
			print(nch1, nch2)


def solve():
	l = int(input())
	a = list(map(int, input().split(' ')))
	if l == 1 and a[0] % 2 == 1:
		print(-1)
	elif a[0] % 2 == 0:
		print('1\n1')
	elif a[1] % 2 == 0:
		print('1\n2')
	else:
		print('2\n1 2')
cnt = int(input())
for i in range(cnt):
	solve()


t = int(input())
for i in range(t):
	n = int(input())
	s = [int(i) for i in input().split()]
	if len(s) > 1:
		if s[0] % 2 == 0:
			print(1)
			print(1)
		elif s[1] % 2 == 0:
			print(1)
			print(2)
		else:
			print(2)
			print('1 2')
	elif s[0] % 2 == 0:
		print(1)
		print(1)
	else:
		print(-1)


t = int(input())
for q in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	odds = []
	count = 0
	evens = 0
	even = 0
	flag = False
	for x in range(n):
		if a[x] % 2 == 0:
			evens = 1
			even = x
			flag = True
			break
		else:
			count += 1
			odds.append(x)
		if count == 2:
			flag = True
			break
	if flag:
		if evens != 0:
			print(1)
			print(even + 1)
		else:
			print(2)
			print(odds[0] + 1, odds[1] + 1)
	else:
		print(-1)


import sys
input = sys.stdin.readline
t = int(input())
while t:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	k = 0
	c = 0
	oc = 0
	l = []
	ch = 0
	for i in range(n):
		if a[i] % 2 == 0:
			c = 1
			k = i + 1
			break
		else:
			oc += 1
			l.append(i + 1)
			if oc == 2:
				ch = 1
				break
	if c:
		print(1)
		print(k)
	elif ch:
		print(2)
		print(*l)
	else:
		print(-1)


def iinput():
	return [int(i) for i in input().split()]
t = int(input())
for _ in range(t):
	n = int(input())
	mas = iinput()
	ans = 0
	cur = []
	for i in range(n):
		if mas[i] % 2 == 0:
			ans = i + 1
		else:
			cur += [i + 1]
	if ans:
		print(1)
		print(ans)
	elif len(cur) >= 2:
		print(2)
		print(cur[0], cur[1])
	else:
		print(-1)


t = input()
t = int(t)
for i in range(t):
	n = input()
	n = int(n)
	a = input().split()
	even = False
	index = 0
	for i in range(len(a)):
		a[i] = int(a[i])
	for i in range(len(a)):
		if a[i] % 2 == 0:
			even = True
			index = i
			break
	if len(a) == 1 and a[0] % 2 == 1:
		print('-1')
	elif len(a) == 1 and a[0] % 2 == 0:
		print('1')
		print('1')
	elif even:
		print('1')
		print(index + 1)
	else:
		for i in range(n):
			if a[i] % 2 == 1 and a[i + 1] % 2 == 1 or (a[i] % 2 == 0 and a[i + 1] % 2 == 0):
				print('2')
				for y in range(2):
					print(y + 1, end=' ')
				break


t = int(input())
for i in range(t):
	st = int(input())
	l = list(map(int, input().split()))
	ev = []
	od = []
	ev1 = 0
	od1 = 0
	for i in range(len(l)):
		if l[i] % 2 == 0:
			ev.append(i + 1)
			ev1 = 1
			break
		elif l[i] % 2 == 1:
			od.append(i + 1)
			if len(od) >= 2:
				od1 = 1
	if od1 == 0 and ev1 == 0:
		print(-1)
	elif od1 == 1:
		print(2)
		print(od[0], od[1])
	else:
		print(1)
		print(ev[0])


for _ in range(int(input())):
	n = int(input())
	L = list(map(int, input().split()))
	ans = -1
	for i in range(n):
		if L[i] % 2 == 0:
			ans = i + 1
			break
	if ans != -1:
		print(1)
		print(ans)
		continue
	if n == 1:
		print(-1)
		continue
	else:
		print(2)
		print('1 2')
		continue


t = int(input())

def determine(s, arr):
	impares = []
	index = 0
	if s == 1 and (arr[0] % 2 != 0 or arr[0] == 0):
		kk = []
		kk.append(-1)
		return kk
	else:
		while True:
			if len(impares) == 2:
				retur = []
				retur.append(2)
				for l in impares:
					retur.append(l)
				return retur
			if arr[index] % 2 == 0:
				keys = []
				keys.append(1)
				keys.append(index + 1)
				return keys
			else:
				impares.append(index + 1)
				index += 1
responses = []
for i in range(t):
	n = int(input())
	a = input().split(' ')
	a_int = [int(j) for j in a]
	var = determine(n, a_int)
	responses.append(var)
for r in responses:
	if len(r) == 1:
		print(r[0])
	else:
		print(r[0])
		prt = ''
		for i in range(len(r)):
			if i == 0:
				continue
			prt += str(r[i]) + ' '
		print(prt)


def go():
	n = int(input())
	a = list(map(int, input().split()))
	odd = -1
	for (i, aa) in enumerate(a, 1):
		if aa % 2 == 0:
			return f'1\n{i}'
		elif odd == -1:
			odd = i
		else:
			return f'2\n{odd} {i}'
	return '-1'
t = int(input())
for _ in range(t):
	print(go())


t = int(input())
for i in range(t):
	n = int(input())
	sp = list(map(int, input().split()))
	if n == 1:
		if sp[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		(q, w) = (sp[0], sp[1])
		if q % 2 == 0:
			print(1)
			print(1)
		elif w % 2 == 0:
			print(1)
			print(2)
		else:
			print(2)
			print('1 2')


def convert(lst):
	return ' '.join(lst)
for t in range(0, int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	l1 = []
	(c, d) = (0, 0)
	for i in range(0, n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			d = 1
			break
		else:
			c = c + 1
			l1.append(str(i + 1))
		if c == 2:
			break
	if d != 1:
		if c == 1:
			print(-1)
		if c == 2:
			print(2)
			print(convert(l1))


t = int(input())
for x in range(0, t):
	n = int(input())
	a = input().split(' ')
	c = 0
	for y in a:
		if int(y) % 2 == 0:
			print('1')
			print(a.index(y) + 1)
			c = 1
			break
	if c == 0:
		for z in range(0, n):
			if n == 1 and int(a[z]) % 2 != 0:
				print('-1')
				break
			else:
				print('2')
				print('1 2')
				break


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	t = -1
	for (i, e) in enumerate(a):
		if e % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif t >= 0:
			print(2)
			print(t + 1, i + 1)
			break
		else:
			t = i
	else:
		print(-1)


n = int(input())
for i in range(n):
	m = int(input())
	l = list(map(int, input().split()))
	count = 0
	flag = 0
	for i in range(len(l)):
		if l[i] % 2 == 0:
			flag = 1
			count += 1
			print(count)
			print(l.index(l[i]) + 1)
			break
	if flag == 0:
		if len(l) == 1:
			print(-1)
		elif len(l) > 1:
			print(2)
			print(1, 2)


n = int(input())
while n > 0:
	n -= 1
	count = int(input())
	array = list(map(int, input().split()))
	if len(array) == 1:
		if array[0] % 2 == 1:
			print('-1')
		else:
			print(1)
			print('1')
	elif array[0] % 2 == 1 and array[1] % 2 == 1:
		print(2)
		print('1 2')
	elif array[0] % 2 == 0:
		print(1)
		print('1')
	elif array[1] % 2 == 0:
		print(1)
		print('2')


def answer():
	n = int(input())
	while n:
		p = int(input())
		k = [int(x) for x in input().split()]
		i = 0
		(odd, even) = (0, 0)
		done = 0
		while i < len(k):
			if k[i] % 2:
				odd += 1
				if odd == 1:
					s = i
				if odd == 2:
					print(2)
					print(s + 1, i + 1)
					done = 1
					break
			else:
				print(1)
				print(i + 1)
				done = 1
				break
			i += 1
		if not done:
			print(-1)
		n -= 1
answer()


import sys
sys.setrecursionlimit(10 ** 6)
int1 = lambda x: int(x) - 1
p2D = lambda x: print(*x, sep='\n')

def II():
	return int(sys.stdin.readline())

def MI():
	return map(int, sys.stdin.readline().split())

def LI():
	return list(map(int, sys.stdin.readline().split()))

def LLI(rows_number):
	return [LI() for _ in range(rows_number)]

def SI():
	return sys.stdin.readline()[:-1]

def main():
	t = II()
	for _ in range(t):
		n = II()
		aa = LI()
		if n == 1 and aa[0] & 1:
			print(-1)
			continue
		if aa[0] & 1 and aa[1] & 1:
			print(2)
			print(1, 2)
		elif aa[0] & 1:
			print(1)
			print(2)
		else:
			print(1)
			print(1)
main()


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().strip().split()))
	odd = 0
	even = 0
	for i in a:
		if i % 2 == 0:
			even += 1
		else:
			odd += 1
	k = False
	if even > 0 or odd > 1:
		k = True
	else:
		print(-1)
	if k and even > 0:
		for i in range(len(a)):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
	elif k and odd > 1:
		a1 = []
		for i in range(len(a)):
			if a[i] % 2 != 0:
				a1.append(i + 1)
			if len(a1) == 2:
				break
		print(2)
		for i in a1:
			print(i, end=' ')


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	evens = []
	odds = []
	len_even = len_odd = 0
	for i in range(n):
		if arr[i] % 2:
			odds.append(i + 1)
			len_odd += 1
		else:
			evens.append(i + 1)
			len_even += 1
	if evens:
		print(1)
		print(evens[0])
	elif len_odd >= 2:
		print(2)
		print(odds[0], odds[1])
	else:
		print(-1)


def hello(n, arr):
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
	for i in range(len(arr) - 1):
		for j in range(i + 1, len(arr)):
			if (arr[i] + arr[j]) % 2 == 0:
				print(2)
				print(i + 1, j + 1, end=' ')
				return
	print(-1)
	return
for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	hello(n, arr)


for x in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	b = []
	i = 0
	count = 0
	s = 0
	while i < n:
		if a[i] % 2 == 0:
			count = 1
			s = i
			break
		else:
			b.append(i)
		i += 1
	if count == 1:
		print(1)
		print(s + 1)
	else:
		i = 0
		while i < len(b) - 1:
			if b[i] + 1 == b[i + 1]:
				count = 2
				s = i
				break
		if count == 2:
			print(2)
			print(s + 1, s + 2)
		else:
			print(-1)


from math import *
from copy import *
from string import *
from random import *
from sys import stdin
from sys import maxsize
from operator import *
from itertools import *
from collections import Counter
import math

def bin1(l, r, k, t, b, val, ans):
	if l > r:
		return ans
	else:
		mid = (l + r) // 2
		v = k ** mid
		if v == val:
			return v
		elif v > val:
			ans = mid
			return bin1(mid + 1, r, k, t, b, val, ans)
		else:
			return bin1(l, mid - 1, k, t, b, val, ans)

def bin2(l, r, k, t, b, val, ans):
	if l > r:
		return ans
	else:
		mid = (l + r) // 2
		v = t * k ** mid + b * mid
		if v == val:
			return v
		elif v > val:
			ans = mid
			return bin2(l, mid - 1, k, t, b, val, ans)
		else:
			return bin2(mid + 1, r, k, t, b, val, ans)

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

def bin(l, r, ll, val):
	if l > r:
		return -1
	else:
		mid = (l + r) // 2
		if val >= ll[mid][0] and val <= ll[mid][1]:
			return mid
		elif val < ll[mid][0]:
			return bin(l, mid - 1, ll, val)
		else:
			return bin(mid + 1, r, ll, val)

def deci(n):
	s = ''
	while n != 0:
		if n % 2 == 0:
			n = n // 2
			s = '0' + s
		else:
			n = n // 2
			s = '1' + s
	return s

def diff(s1, s2):
	if len(s1) < len(s2):
		v = len(s1)
		while v != len(s2):
			s1 = '0' + s1
			v = v + 1
	else:
		v = len(s2)
		while v != len(s1):
			s2 = '0' + s2
			v = v + 1
	c = 0
	for i in range(len(s1)):
		if s1[i:i + 1] != s2[i:i + 1]:
			c = c + 1
	return c
from sys import stdin, stdout

def fac(a, b):
	v = a
	while a != b:
		v *= a - 1
		a = a - 1
	return v

def bino(l, r, n):
	if l > r:
		return -1
	else:
		mid = (l + r) // 2
		val1 = math.log(n / mid + 1, 2)
		val2 = int(val1)
		if val1 == val2:
			return val1
		elif val1 < 1.0:
			return bino(l, mid - 1, n)
		else:
			return bino(mid + 1, r, n)

def binary(l, r, ll, val, ans):
	if l > r:
		return ans
	else:
		mid = (l + r) // 2
		if ll[mid] <= val:
			ans = mid + 1
			return binary(mid + 1, r, ll, val, ans)
		else:
			return binary(l, mid - 1, ll, val, ans)

def odd(n, ans, s):
	if n % 2 != 0 or n in s:
		return ans
	else:
		s.add(n)
		return odd(n // 2, ans + 1, s)
t = int(stdin.readline())
for i in range(t):
	n = int(stdin.readline())
	l = list(map(int, stdin.readline().split(' ')))
	if n == 1:
		if l[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		c = 0
		ind = 0
		l1 = []
		for i in range(n):
			if l[i] % 2 == 0:
				c = 1
				ind = i + 1
				break
			else:
				l1.append(i + 1)
		if c == 0:
			if n % 2 == 0:
				print(n)
				print(*l1)
			else:
				print(n - 1)
				print(*l1[0:n - 1])
		else:
			print(c)
			print(ind)


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(s) for s in input().split()]
	if n == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		for i in range(0, n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
		else:
			print(2)
			print(1, 2)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split(' ')))
	cnt_odd = 0
	cnt_even = 0
	for i in l:
		if i & 1:
			cnt_odd += 1
		else:
			cnt_even += 1
	if cnt_even:
		for i in range(n):
			if l[i] % 2 == 0:
				print('1')
				print(i + 1)
				break
	elif cnt_odd == 1:
		print('-1')
	else:
		print('2')
		print('1', '2')


t = int(input())
otvet = []
while t != 0:
	nechet = []
	n = int(input())
	a = input().split()
	for j in range(n):
		if int(a[j]) % 2 == 0:
			otvet.append(1)
			otvet.append(j + 1)
			break
		if len(a) == 1:
			otvet.append(-1)
			break
		if len(nechet) < 1:
			nechet.append(str(j + 1))
		else:
			nechet.append(str(j + 1))
			break
	t -= 1
	if len(nechet) == 2:
		otvet.append(2)
		otvet.append(' '.join(nechet))
print(*otvet, sep='\n')


def evensum(arr, n):
	odd = []
	for i in range(n):
		if arr[i] % 2 == 0:
			return [i + 1]
		else:
			odd.append(i + 1)
			if len(odd) == 2:
				return odd
	return []
t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	ans = []
	ans = evensum(arr, n)
	if len(ans) == 0:
		print(-1)
	elif len(ans) == 1:
		print(1)
		print(ans[0])
	elif len(ans) == 2:
		print(2)
		print(ans[0], ans[1])
	else:
		print(-1)


def program():
	n = int(input())
	l = list(map(int, input().split()))
	odd = 0
	for i in range(n):
		if l[i] % 2 == 0:
			print('1')
			print(i + 1)
			return 0
		else:
			odd += 1
	if odd <= 1:
		print('-1')
	else:
		print(2)
		count = 0
		for i in range(n):
			if count == 2:
				print()
				break
			if l[i] % 2 != 0:
				print(i + 1, end=' ')
				count += 1
t = int(input())
for i in range(t):
	program()


from sys import stdin, stdout
for _ in range(int(stdin.readline())):
	n = int(stdin.readline())
	arr = [int(k) for k in stdin.readline().split()]
	if n == 1:
		if arr[0] % 2 == 0:
			stdout.write('1\n')
			stdout.write('1\n')
		else:
			stdout.write('-1\n')
	elif arr[0] % 2 == 0:
		stdout.write('1\n')
		stdout.write('1\n')
	elif arr[1] % 2 == 0:
		stdout.write('1\n')
		stdout.write('2\n')
	else:
		stdout.write('2\n')
		stdout.write('1 2\n')


def main():
	n = int(input())
	a = list(map(int, input().split()))
	cnto = 0
	ans = []
	for (i, x) in enumerate(a):
		if x % 2 != 0:
			cnto += 1
		else:
			ans.append(i + 1)
	if cnto == n and n % 2 == 0:
		print(len(a))
		for i in range(len(a)):
			print(i + 1, end=' ')
		print()
		return
	elif cnto == n and n != 1:
		print(len(a) - 1)
		for i in range(len(a) - 1):
			print(i + 1, end=' ')
		print()
		return
	elif cnto != n:
		print(len(ans))
		print(*ans)
	else:
		print(-1)
	return

def test():
	t = int(input())
	while t:
		main()
		t -= 1
	return
test()


def solve():
	odd = []
	_ = input()
	arr = list(map(int, input().split()))
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		else:
			odd += [i + 1]
	if len(odd) < 2:
		print(-1)
	else:
		print(2)
		print(odd[0], odd[1])
t = int(input())
for _ in range(t):
	solve()


t = int(input())
for ii in range(t):
	lst2 = []
	lst3 = []
	n = int(input())
	a = map(int, input().split(' '))
	for (pos, i) in enumerate(a):
		if i % 2:
			lst3.append(pos + 1)
		elif i % 2 == 0:
			lst2.append(pos + 1)
	if len(lst2) > 0:
		print(1)
		print(lst2[0])
	elif len(lst3) > 1:
		print(2)
		print('%s %s' % (lst3[0], lst3[1]))
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	(oc, ol) = (0, [])
	flag = False
	for i in range(n):
		if arr[i] % 2 == 0:
			flag = True
			print(1)
			print(i + 1)
			break
		else:
			oc += 1
			ol.append(i + 1)
			if oc == 2:
				print(oc)
				print(*ol)
				flag = True
				break
	if flag == False:
		print(-1)


t = int(input())

def solve(a):
	n = len(a)
	odds = []
	for j in range(n):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			return
		else:
			odds.append(j)
			if len(odds) == 2:
				print(2)
				print(odds[0] + 1, odds[1] + 1)
				return
	print(-1)
	return
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	solve(a)


for i in range(int(input())):
	n = int(input())
	a = [*map(int, input().split())]
	t = 1
	for j in range(n):
		if a[j] % 2 == 0:
			t = 0
			print(1, '\n', j + 1)
			break
	if t:
		print(-1 if n == 1 else '2\n1 2')


e = int(input())
for ee in range(e):
	g = 0
	n = int(input())
	a = [int(i) for i in input().split(' ', n - 1)]
	for i in range(len(a)):
		if a[i] % 2 == 0:
			print('1')
			print(i + 1)
			g = 1
			break
	if g == 0:
		if len(a) >= 2:
			print('2')
			print('1 2')
		else:
			print('-1')


import sys
t = int(next(sys.stdin))
for i in range(t):
	n = int(next(sys.stdin))
	arr = list(map(int, next(sys.stdin).split()))
	(a0, a1) = ([], [])
	good = False
	for (j, x) in enumerate(arr, 1):
		if x % 2:
			a1.append(j)
		else:
			a0.append(j)
		if a0:
			print(1)
			print(a0[0])
			good = True
			break
		elif len(a1) > 1:
			print(2)
			print(a1[0], a1[1])
			good = True
			break
	if not good:
		print(-1)


from math import *
zzz = int(input())
for zz in range(zzz):
	n = int(input())
	a = [int(i) for i in input().split()]
	ha = False
	for i in a:
		if i % 2 == 0:
			print(1)
			print(a.index(i) + 1)
			ha = True
			break
	if not ha:
		if len(a) == 1:
			print(-1)
		else:
			print(2)
			print('1 2')


import sys
t = int(sys.stdin.readline())
for i in range(t):
	n = int(sys.stdin.readline())
	a = [int(x) for x in sys.stdin.readline().split()]
	ans = []
	for e in range(n):
		if a[e] % 2 == 0:
			ans.append(e + 1)
			break
	if len(ans) == 0:
		ctr = 0
		for g in range(n):
			if a[g] % 2 == 1:
				ans.append(g + 1)
				ctr += 1
				if ctr == 2:
					break
		if ctr == 1:
			print(-1)
		else:
			print(len(ans))
			for e in range(len(ans)):
				print(ans[e], end=' ')
			print()
	else:
		print(len(ans))
		for e in range(len(ans)):
			print(ans[e], end=' ')
		print()


def checker(a):
	return a % 2 == 0
for _ in range(int(input())):
	n = int(input())
	lst = [int(i) for i in input().split()]
	if n < 2:
		if not checker(lst[0]):
			print(-1)
		else:
			print(1)
			print(1)
	elif checker(lst[0]):
		print(1)
		print(1)
	elif not checker(lst[1]):
		print(2)
		print(1, 2)
	elif checker(lst[1]):
		print(1)
		print(2)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	x = 0
	xa = []
	y = 0
	ya = []
	for i in range(n):
		if a[i] % 2 == 0:
			x += 1
			xa.append(i + 1)
		else:
			y += 1
			ya.append(i + 1)
		if x == 1:
			print(1)
			print(*xa)
			break
		elif y == 2:
			print(2)
			print(*ya)
			break
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	if len([1 for i in a if i % 2 == 0]) > 0:
		print(1)
		print([i + 1 for i in range(n) if a[i] % 2 == 0][0])
	elif len([1 for i in a if i % 2 != 0]) > 1:
		print(2)
		print(' '.join(map(str, [i + 1 for i in range(n) if a[i] % 2 != 0][0:2])))
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(x) for x in input().split()]
	odds = []
	evens = []
	for x in range(n):
		if arr[x] & 1:
			odds.append(x)
		else:
			evens.append(x)
	if len(evens):
		print(1)
		print(evens[0] + 1)
	elif len(odds) >= 2:
		print(2)
		print(odds[0] + 1, odds[1] + 1)
	else:
		print(-1)


ntest = int(input())
k = list()
b = list()
for test in range(ntest):
	input_n = input().split()
	n = [int(item) for item in input_n]
	input_a = input().split()
	a = [int(item) for item in input_a]
	i = 0
	j = 0
	b_temp = []
	for item in a:
		i = i + 1
		if item % 2 == 0:
			k.append(1)
			b.append([i])
			j = 3
			break
		if item % 2 == 1:
			j = j + 1
			b_temp.append(i)
		if j == 2:
			k.append(2)
			b.append(b_temp)
			break
	if j < 2:
		k.append(-1)
		b.append([])
for item in range(ntest):
	print(k[item])
	if not b[item]:
		continue
	else:
		print(*b[item])


import sys
read = sys.stdin.buffer.readline
for _ in range(int(read())):
	n = int(read())
	a = list(map(int, read().split()))
	(le, li) = (0, -1)
	ans = set()
	for i in range(n):
		if a[i] % 2 == 0:
			ans.add(i)
		elif le != 0:
			ans.add(i)
			ans.add(li)
			(le, li) = (0, -1)
		else:
			(le, li) = (a[i], i)
	if len(ans) == 0:
		print(-1)
		continue
	print(len(ans))
	for el in ans:
		print(el + 1, end=' ')
	print()


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	e = []
	o = []
	for i in range(len(l)):
		if l[i] % 2 == 0:
			e.append(i)
		else:
			o.append(i)
	if len(e) == 0 and len(o) < 2:
		print(-1)
		continue
	if len(e) != 0:
		print(1)
		print(e[0] + 1)
		continue
	if len(o) >= 2:
		print(2)
		print(o[0] + 1, o[1] + 1)
		continue


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	ok = True
	first = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			ok = False
			break
		elif first == 0:
			first = i + 1
		else:
			print(2)
			print(first, i + 1)
			ok = False
			break
	if ok:
		print(-1)


def solve():
	n = int(input())
	li = list(map(int, input().split()))
	oc = []
	for i in range(n):
		if li[i] % 2 == 0:
			print(f'1\n{i + 1}')
			return
		if li[i] % 2 != 0:
			oc.append(i + 1)
			if len(oc) == 2:
				break
	if len(oc) == 2:
		print(f'2\n{oc[0]} {oc[1]}')
	else:
		print('-1')
t = int(input())
for _ in range(t):
	solve()


for h in range(int(input())):
	n = int(input())
	arr = list(map(int, input().strip().split()))
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
	else:
		if n % 2 == 0:
			print(n)
			print(*[i + 1 for i in range(n)])
		elif n == 1:
			print(-1)
		else:
			print(n - 1)
			print(*[i + 1 for i in range(n - 1)])


import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	even = []
	odd = []
	for i in range(n):
		if a[i] % 2 == 0:
			even.append(i)
		else:
			odd.append(i)
	if even:
		print(1)
		print(even[0] + 1)
		continue
	elif len(odd) >= 2:
		print(2)
		print(odd[0] + 1, odd[1] + 1)
		continue
	print(-1)


def sol():
	t = int(input())
	for tt in range(t):
		n = int(input())
		A = [int(i) for i in input().split()]
		evenList = []
		oddList = []
		for i in range(n):
			if A[i] % 2 == 0:
				evenList.append(i)
			else:
				oddList.append(i)
		if len(evenList) > 0:
			print(1)
			print(evenList[0] + 1)
		elif len(oddList) > 1:
			print(2)
			print(oddList[0] + 1, oddList[1] + 1)
		else:
			print(-1)
sol()


import sys

def even(a, n):
	oddind = -1
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		elif oddind == -1:
			oddind = i + 1
		else:
			print(2)
			print(oddind, i + 1)
			return
	print(-1)
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, sys.stdin.readline().strip().split()))
	even(a, n)


t = int(input())
res = []
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	even = 0
	odd = []
	oddCount = 0
	flag = False
	for i in range(n):
		if arr[i] % 2 == 0:
			flag = True
			res.append([i + 1])
			break
		elif oddCount != 2:
			oddCount += 1
			odd.append(i + 1)
			if oddCount == 2:
				flag = True
				res.append(odd)
				break
	if not flag:
		res.append(-1)
for x in res:
	if x == -1:
		print(x)
		continue
	print(len(x))
	for y in x:
		print(y, end=' ')
	print()


t = int(input(''))
for i in range(t):
	L1 = []
	n = int(input(''))
	s = input('')
	L = s.split(' ')
	for j in range(n):
		if int(L[j]) % 2 == 0:
			L1.append(1)
		else:
			L1.append(0)
	flag = 0
	for j in range(n):
		if L1[j] == 1:
			print(1)
			print(j + 1)
			flag = 1
			break
	if flag == 0:
		if n != 1:
			print(2)
			print(1, 2)
		elif n == 1:
			print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	ans = 0
	index = []
	even = 0
	odd = 0
	for i in range(n):
		if a[i] % 2 == 0:
			even += 1
			index.append(i + 1)
			break
	if even == 0:
		for i in range(n):
			odd += 1
			index.append(i + 1)
	if even != 0:
		print(even)
		print(index[0])
	elif odd > 1:
		print(2)
		print(index[0], index[1])
	else:
		print(-1)


import itertools
from itertools import combinations

def findsubsets(s, n):
	return list(itertools.combinations(s, n))

def find_indexes_from_elements(a, elements):
	answer = set()
	for element in elements:
		indx = a.index(element)
		if indx in answer:
			indx = a.index(element, indx + 1)
		answer.add(indx)
	return list((i + 1 for i in answer))

def find_subset(a):
	for i in range(len(a)):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
	for len_i in range(2, len(a) + 1):
		cur_subsets = findsubsets(a, len_i)
		for subset in cur_subsets:
			if sum(subset) % 2 == 0:
				print(len(subset))
				print(*find_indexes_from_elements(a, subset))
				return
	print(-1)
cases = int(input())
for _ in range(cases):
	len_case = int(input())
	a = list(map(int, input().split()))
	find_subset(a)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	index = []
	if n == 1 and a[0] % 2 == 1:
		print(-1)
		continue
	else:
		for i in range(n):
			if a[i] % 2 == 0:
				print(1)
				print(i + 1)
				flag = True
				break
			else:
				index.append(i + 1)
				if len(index) == 2:
					print(2)
					print('%s %s' % (index[0], index[1]))
					break


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	c = 0
	s = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			c = 1
			break
		elif s != 0:
			print(2)
			print(s, i + 1)
			c = 1
			break
		else:
			s = i + 1
	if c == 0:
		print(-1)


import sys
fast_reader = sys.stdin.readline
fast_writer = sys.stdout.write

def input():
	return fast_reader().strip()

def print(*argv):
	fast_writer(' '.join((str(i) for i in argv)))
	fast_writer('\n')
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if l[-1] % 2 == 0:
		print(1)
		print(n)
		continue
	f = 0
	for i in range(n - 1):
		if l[i] % 2 == 1 and l[i + 1] % 2 == 1:
			print(2)
			print(i + 1, i + 2)
			f = 1
			break
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
	if f == 0:
		print(-1)


t = int(input())
for k in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(n):
		a[i] = [a[i], i + 1]
	s1 = list(filter(lambda x: x[0] % 2, a))
	s2 = list(filter(lambda x: x[0] % 2 == 0, a))
	if len(s2):
		print(1)
		print(s2[0][1])
	elif len(s1) > 1:
		print(2)
		print(s1[0][1], s1[1][1])
	else:
		print(-1)


import io, os
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline

def rint():
	return map(int, input().split())

def oint():
	return int(input())
t = oint()
for _ in range(t):
	n = oint()
	a = list(rint())
	eo = [0] * n
	ans = -1
	for i in range(n):
		if a[i] % 2 == 0:
			ans = i + 1
			break
	if ans != -1:
		print(1)
		print(ans)
		continue
	if n == 1:
		print(-1)
		continue
	print(2)
	print(1, 2)


for _ in range(int(input())):
	arr = [list(map(int, input().split())) for i in 'aa'][1]
	ok = False
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(*(1, i + 1), sep='\n')
			ok = True
			break
	if not ok:
		if len(arr) % 2 == 0:
			print('{}\n{}'.format(len(arr), ' '.join((str(i + 1) for i in range(len(arr))))))
			continue
		print('2\n1 2' if len(arr) > 2 else -1)


import sys
read = lambda : list(map(int, sys.stdin.readline().strip().split()))
for _ in range(int(input())):
	n = int(input())
	a = read()
	flag = True
	if n == 1:
		if a[0] % 2 == 1:
			print('-1')
		else:
			print('1')
			print('1')
	else:
		for i in range(n):
			if a[i] % 2 == 0:
				print('1')
				print(i + 1)
				flag = False
				break
		if flag:
			print('2')
			print(1, 2)


tests = int(input())
for test in range(tests):
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
	else:
		if n > 1:
			print(2)
			print(1, 2)
		else:
			print(-1)


import sys
import collections
import math
import functools
import itertools
import bisect
import operator
import heapq
import random
true = True
false = False
null = None
SLOW = True
memoi = functools.lru_cache(None)
tcid = 0
tcmax = 99999999
mod = 10 ** 9 + 7

def fast():
	SLOW = False

def compute(val, func):
	return func(val)

def seq(lo, hi, step=1):
	return range(lo, hi + 1, step)

def sround(val, nd):
	return f'{val:.{nd}f}'

def ceil(a, b):
	ans = a // b
	if a % b != 0:
		ans += 1
	return ans

def perr(*args, **kwargs):
	if SLOW:
		print(*args, file=sys.stderr, **kwargs)

def line():
	ln = sys.stdin.readline().strip()
	if ln == '':
		sys.exit()
	return ln

def lines(n):
	return [line() for i in range(n)]

def split(ln=None):
	return (ln or line()).split()

def num(str=None):
	str = str or line()
	return float(str) if '.' in str else int(str)

def nums(o=None):
	if o is not None:
		if isinstance(o, int):
			o = lines(o)
		elif isinstance(o, str):
			o = split(o)
	return list(map(num, o or split()))
tcmax = num()

def mainloop(tcid=1):
	n = num()
	a = [null] + nums()
	odd = []
	evn = []
	for ii in seq(1, n):
		(evn if a[ii] % 2 == 0 else odd).append(ii)

	def aaa():
		if len(odd) > 1:
			return odd
		if len(evn) > 0:
			return evn
		return []
	ans = aaa()
	ans = ans[:2]
	if len(ans) == 0:
		print(-1)
	else:
		print(len(ans))
		print(*ans)
while tcid < tcmax:
	tcid += 1
	mainloop(tcid)


for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	k = -1
	l = []
	if sum(a) % 2 == 0:
		print(n)
		for i in range(n):
			print(i + 1, end=' ')
		print(' ')
	else:
		for i in range(n):
			if a[i] % 2 == 1:
				k = i
				break
		if k != -1:
			if k == 0:
				if n > 1:
					print(n - 1)
					for i in range(n):
						if i != k:
							print(i + 1, end=' ')
					print(' ')
				else:
					print(-1)
			else:
				print(n - 1)
				for i in range(n):
					if i != k:
						print(i + 1, end=' ')
				print(' ')
		else:
			print(-1)


def find_sum(arr):
	evens = []
	odds = []
	for (i, el) in enumerate(arr):
		if el % 2 == 0:
			evens.append(i + 1)
		else:
			odds.append(i + 1)
	if len(evens) > 0:
		return evens[:1]
	if len(odds) >= 2:
		return odds[:2]
	return [-1]
t = int(input())
for i in range(t):
	l = int(input())
	arr = list(map(lambda x: int(x), input().strip().split()))
	result = find_sum(arr)
	if result[0] == -1:
		print(-1)
		continue
	print(len(result))
	print(' '.join(list(map(lambda x: str(x), result))))


T = int(input())
for j in range(T):
	n = int(input())
	a = list(map(int, input().split()))
	t = 0
	now = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print('1')
			print(i + 1)
			t = 1
			break
		else:
			now = now + 1
			if now == 2:
				print('2')
				print(pre + 1, i + 1)
				t = 1
				break
			pre = i
	if t == 0:
		print('-1')


from sys import stdin, gettrace
if not gettrace():

	def input():
		return next(stdin)[:-1]

def main():

	def solve():
		n = int(input())
		aa = [int(a) for a in input().split()]
		if n == 1:
			if aa[0] % 2 == 0:
				print(1)
				print(1)
			else:
				print(-1)
		elif aa[0] % 2 == 0:
			print(1)
			print(1)
		elif aa[1] % 2 == 0:
			print(1)
			print(2)
		else:
			print(2)
			print(1, 2)
	q = int(input())
	for _ in range(q):
		solve()
main()


for _ in range(int(input())):
	n = int(input())
	a = [int(i) % 2 for i in input().split()]
	if len(a) == 1 and a[0] == 1:
		print(-1)
	elif 0 in a:
		print(1)
		print(a.index(0) + 1)
	else:
		print(2)
		print(1, 2)


for test_c in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	t = 0
	s = 0
	for i in range(len(a)):
		t += a[i]
		if a[i] % 2 == 0:
			print('1')
			print(i + 1)
			s = 1
			break
		elif t % 2 == 0:
			s = 2
			print(i + 1)
			print('1', end='')
			for pt in range(2, i + 2):
				print('', pt)
			break
	if s == 0:
		print('-1')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	d = [[], []]
	fl = False
	ans = []
	for i in range(n):
		vl = a[i] % 2
		d[vl].append(i + 1)
		if vl == 0:
			fl = True
			ans = [i + 1]
			break
		elif len(d[vl]) == 2:
			fl = True
			ans = list(d[vl])
			break
	if fl:
		print(len(ans))
		print(*ans)
	else:
		print(-1)


from sys import stdin, stdout
Pi = lambda x: stdout.write(str(x) + '\n')
Ps = lambda x: stdout.write(str(x))
S = lambda x: x * (x + 1) // 2
I = lambda x: 1 + 2 * x
R = lambda : stdin.readline()
Ri = lambda x: map(int, x.split())
Rs = lambda x: map(str, x.split())
Rf = lambda x: map(float, x.split())

def main():
	t = int(R())
	for test in range(t):
		n = int(R())
		A = list(Ri(R()))
		sw = 1
		for i in range(n):
			if A[i] % 2 == 0:
				Pi(1)
				Pi(i + 1)
				sw = 0
				break
			elif i > 0 and (A[i] + A[i - 1]) % 2 == 0:
				Pi(2)
				Pi(str(i) + ' ' + str(i + 1))
				sw = 0
				break
			elif 1 + i < n and (A[i] + A[i + 1]) % 2 == 0:
				Pi(2)
				Pi(str(i + 1) + ' ' + str(i + 2))
				sw = 0
				break
		if sw:
			Pi(-1)
main()


t = input()
for i in range(int(t)):
	n = input()
	ar = input()
	arr1 = ar.split(' ')
	arr = []
	for j in arr1:
		arr.append(int(j))
	if int(n) == 1:
		if arr[0] % 2 == 0:
			print('1')
			print('1')
		else:
			print('-1')
	elif arr[0] % 2 == 0:
		print('1')
		print('1')
	elif arr[1] % 2 == 0:
		print('1')
		print('2')
	else:
		print('2')
		print('1 2')


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	if len(l) >= 2:
		if l[0] % 2 == 0:
			print(1)
			print(1)
		elif l[1] % 2 == 0:
			print(1)
			print(2)
		else:
			print(2)
			print(1, ' ', 2)
	elif l[0] % 2 == 0:
		print(1)
		print(1)
	else:
		print(-1)


def solve(N, V):
	ans = []
	par = []
	disp = []
	for i in range(0, N):
		if V[i] % 2 == 0:
			par.append(i)
		else:
			disp.append(i)
	if len(par) != 0:
		ans.append(par[0])
	if len(disp) >= 2:
		ans.append(disp[0])
		ans.append(disp[1])
	return ans

def main():
	T = int(input())
	while T > 0:
		N = int(input())
		V = list(map(int, input().split()))
		ans = solve(N, V)
		if len(ans) == 0:
			print(-1)
		else:
			print(len(ans))
			for i in ans:
				print(i + 1, end=' ')
			print()
		T = T - 1
	return
main()


t = int(input())
for i in range(t):
	lenght = int(input())
	array = [int(x) for x in input().split(' ')]
	if lenght == 1:
		if array[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif array[0] % 2 == 0:
		print(1)
		print(1)
	elif array[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


t = int(input())
for _ in range(t):
	(n, ok) = (int(input()), 0)
	a = list(map(int, input().split()))
	for x in range(1, n):
		a[x] += a[x - 1]
	for x in range(n):
		if a[x] % 2 == 0:
			ok = 1
			print(x + 1)
			for y in range(1, x + 2):
				print(y, end=' ')
			print()
			break
	if ok:
		continue
	for x in range(0, n - 1):
		if ok == 0:
			for y in range(x + 1, n):
				if (a[y] - a[x]) % 2 == 0:
					ok = 1
					print(y - x)
					for k in range(x + 1, y + 1):
						print(k + 1, end=' ')
					print()
					break
	if ok == 0:
		print('-1')


t = int(input())
for i in range(t):
	c = 0
	n = int(input())
	li = list(map(int, input().split()))
	if sum(li) % 2 != 0:
		if len(li) > 1:
			print(len(li) - 1)
			for i in range(len(li)):
				if li[i] % 2 != 0:
					li[i] = -1
					break
			for i in range(len(li)):
				if li[i] != -1:
					print(i + 1, end=' ')
			print('\n')
		else:
			print('-1')
	else:
		print(len(li))
		print(' '.join((str(i + 1) for i in range(len(li)))))
		print('')


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(x) for x in input().split(' ')]
	f = [x for x in a if x % 2 == 0]
	f2 = [x for x in a if x % 2 == 1]
	if len(f) > 0:
		print(1)
		print(a.index(f[0]) + 1)
	elif len(f2) > 1:
		print(2)
		print(a.index(f2[0]) + 1, len(a) - 1 - a[::-1].index(f2[1]) + 1)
	else:
		print(-1)


import sys
import math
from collections import defaultdict as ddict
from collections import deque
import heapq
from queue import Queue
fast_inp = lambda : sys.stdin.readline().split('\n')[0]
read_list = lambda : fast_inp().split(' ')
read_listi = lambda : list(map(int, fast_inp().split(' ')))
read_listf = lambda : list(map(float, fast_inp().split(' ')))
read_int = lambda : int(fast_inp())
read_float = lambda : float(fast_inp())
read = lambda : fast_inp()
DEBUG = False

def debug(**kwargs):
	if not DEBUG:
		return
	print('*' * 20)
	for (k, v) in kwargs.items():
		print(f'\t{k}:{v}\t')
	print('*' * 20)

def solve() -> None:
	n = read_int()
	arr = read_listi()
	for (i, x) in enumerate(arr):
		if not x & 1:
			print(1)
			print(i + 1)
			return
	cnt = 0
	odd_indices = []
	for (i, x) in enumerate(arr):
		if x & 1:
			odd_indices.append(i + 1)
	if len(odd_indices) < 2:
		print(-1)
	else:
		print(2)
		print(odd_indices[0], odd_indices[1])
t = read_int()
for _ in range(t):
	solve()


def main():
	t = int(input())
	while t:
		t -= 1
		_ = int(input())
		a = list(map(int, input().split()))
		even = []
		odd = []
		for (i, e) in enumerate(a):
			if e % 2 == 0:
				even.append(i + 1)
			else:
				odd.append(i + 1)
		if len(even) > 0:
			print('1\n %d' % even[0])
		elif len(odd) > 1:
			print('2\n %d %d' % (odd[0], odd[1]))
		else:
			print('-1')
main()


n = int(input())
result = []
for _ in range(n):
	m = int(input())
	arr = list(map(int, input().split(' ')))
	odd = []
	ready = False
	for i in range(m):
		if arr[i] % 2 == 0:
			result.append(1)
			result.append(i + 1)
			ready = True
			break
		else:
			odd.append(str(i + 1))
			if len(odd) == 2:
				result.append(2)
				result.append(' '.join(odd))
				ready = True
				break
	if not ready:
		if len(odd) == 2:
			result.append(2)
			result += odd
		else:
			result.append(-1)
for item in result:
	print(item)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().strip().split(' ')))
	d = []
	f = []
	t = False
	for i in range(n):
		if l[i] % 2 == 0:
			f = [i + 1]
			t = True
			break
		else:
			f.append(i + 1)
		if len(f) == 2:
			t = True
			break
	if t:
		print(len(f))
		print(*f, sep=' ')
	else:
		print(-1)


test_case = int(input())
for _ in range(test_case):
	n = int(input())
	a = list(map(int, input().split()))
	odd_count = sum([1 for i in a if i % 2])
	even_count = n - odd_count
	if even_count == 0:
		if odd_count < 2:
			print(-1)
		else:
			print(2)
			print(1, 2)
		continue
	print(1)
	print([i + 1 for i in range(n) if a[i] % 2 == 0][0])


import math
t = int(input())
for tt in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	flag = False
	odd = []
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = True
			break
		else:
			odd.append(i + 1)
			if len(odd) % 2 == 0:
				break
	if not flag:
		if len(odd) % 2 == 1:
			print(-1)
			continue
		print(len(odd))
		for i in odd:
			print(i, end=' ')
		print()


n = int(input())
for i in range(n):
	t = int(input())
	c = list(map(int, input().split()))
	e = []
	o = []
	for j in range(len(c)):
		if c[j] % 2 == 0:
			e.append(j + 1)
		else:
			o.append(j + 1)
	if len(e) == 0 and len(o) == 0:
		print(-1)
	elif len(e) > 0:
		print(1)
		print(e[0])
	elif len(o) >= 2:
		print(2)
		print(o[0], o[1])
	else:
		print(-1)


n = int(input())
for i in range(n):
	m = int(input())
	li = list(map(int, input().split()))
	odd1 = -1
	odd2 = -1
	even = -1
	idx = 0
	if len(li) == 1 and li[0] % 2 == 1:
		print(-1)
	else:
		for i in li:
			if i % 2 == 0:
				print('1')
				print(idx + 1)
				break
			elif odd1 == -1:
				odd1 = idx
			elif odd2 == -1:
				odd2 = idx
				print('2')
				print(odd1 + 1, odd2 + 1)
				break
			idx += 1


import sys
import os
import time
import collections
from collections import Counter, deque
import itertools
import math
import timeit
import random
import string

def sieve(n):
	if n < 2:
		return list()
	prime = [True for _ in range(n + 1)]
	p = 3
	while p * p <= n:
		if prime[p]:
			for i in range(p * 2, n + 1, p):
				prime[i] = False
		p += 2
	r = [2]
	for p in range(3, n + 1, 2):
		if prime[p]:
			r.append(p)
	return r

def divs(n, start=1):
	divisors = []
	for i in range(start, int(math.sqrt(n) + 1)):
		if n % i == 0:
			if n / i == i:
				divisors.append(i)
			else:
				divisors.extend([i, n // i])
	return divisors

def divn(n, primes):
	divs_number = 1
	for i in primes:
		if n == 1:
			return divs_number
		t = 1
		while n % i == 0:
			t += 1
			n //= i
		divs_number *= t

def flin(d, x, default=-1):
	left = right = -1
	for i in range(len(d)):
		if d[i] == x:
			if left == -1:
				left = i
			right = i
	if left == -1:
		return (default, default)
	else:
		return (left, right)

def ceil(n, k):
	return n // k + (n % k != 0)

def ii():
	return int(input())

def mi():
	return map(int, input().split())

def li():
	return list(map(int, input().split()))

def lcm(a, b):
	return abs(a * b) // math.gcd(a, b)

def prr(a, sep=' '):
	print(sep.join(map(str, a)))

def dd():
	return collections.defaultdict(int)

def ddl():
	return collections.defaultdict(list)
for _ in range(ii()):
	n = ii()
	d = li()
	o = []
	e = []
	for i in range(n):
		if d[i] % 2:
			o.append(i + 1)
		else:
			e.append(i + 1)
	if e:
		print(1)
		print(e[0])
	elif len(o) > 1:
		print(2)
		print(o[0], o[1])
	else:
		print(-1)


def solve(n, l):
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
	if n > 1:
		print(2)
		print('1 2')
		return
	else:
		print(-1)
		return
numberofcases = int(input())
for _ in range(numberofcases):
	n = int(input())
	l = [int(t) for t in input().split()]
	solve(n, l)


t = int(input())
while t:
	t -= 1
	n = int(input())
	l = list(map(int, input().split()))
	flag = False
	for i in range(1, 1 << n):
		s = 0
		l1 = []
		for j in range(n):
			if i & 1 << j:
				s += l[j]
				l1.append(j + 1)
		if s % 2 == 0:
			flag = True
			break
		else:
			flag = False
	if flag == False:
		print(-1)
	else:
		print(len(l1))
		for i in l1:
			print(i, end=' ')
		print('\r')


for _ in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif n == 2:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		elif a[1] % 2 == 0:
			print(1)
			print(2)
		elif sum(a) % 2 == 0:
			print(2)
			print(1, 2)
		else:
			print(-1)
	else:
		flag = 0
		res = 0
		for i in range(n):
			if a[i] % 2 == 0:
				flag = 1
				res = i + 1
				break
		if flag == 1:
			print(1)
			print(res)
		else:
			print(2)
			print(1, 2)


for i in range(int(input())):
	n = int(input())
	lst = [int(i) for i in input().split()][:2]
	if lst[0] % 2 == 0:
		print(1)
		print(1)
	elif len(lst) == 1 and lst[0] % 2 != 0:
		print(-1)
	elif lst[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


import math
t = int(input())
while t:
	n = int(input())
	arr = list(map(int, input().split()))
	rec = []
	sum = 0
	m = 0
	z = True
	if n == 1 and arr[0] % 2 != 0:
		print(-1)
		z = False
	for i in range(n):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			z = False
			break
	if z:
		print(2)
		print(1, 2)
	t = t - 1


a = input()
a = int(a)
cont = 0
dizio = {}
indice = 0
for x in range(a):
	indice += 1
	for y in range(2):
		if cont == 0:
			cont += 1
			b = input()
			dizio[indice] = []
		elif cont == 1:
			cont -= 1
			k = input().split()
			dizio[indice] = k
for x in dizio:
	booleano = False
	for y in range(len(dizio[x])):
		if int(dizio[x][y]) % 2 == 0:
			booleano = True
			print(1)
			print(y + 1)
			break
	if booleano == False:
		booleano_2 = False
		for y in range(len(dizio[x])):
			for z in range(len(dizio[x])):
				if z != y:
					print(2)
					print(y + 1, z + 1)
					booleano_2 = True
					break
			if booleano_2 == True:
				break
		if booleano_2 == False:
			print(-1)


def solve(arr):
	indexes = []
	(even, odd) = (0, 0)
	for (i, n) in enumerate(arr):
		if n % 2 == 0:
			return [i + 1]
		else:
			odd += 1
			indexes.append(i + 1)
			if odd % 2 == 0:
				return indexes
	return []
t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(x) for x in input().split(' ')]
	sol = solve(arr)
	if len(sol) > 0:
		print(len(sol))
		print(' '.join([str(x) for x in sol]))
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	s = [*map(int, input().split())]
	d = []
	for i in range(n):
		if s[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			d.append(i + 1)
			if len(d) == 2:
				print(2)
				print(*d)
				break
		if len(d) < 2 and i + 1 == n:
			print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().strip().split()))
	s = []
	for i in range(n):
		s.append(i + 1)
	r = 0
	c = 0
	if len(a) == 1 and a[0] % 2 != 0:
		print(-1)
	for i in range(n):
		if a[i] % 2 != 0:
			c += 1
			r = i
			break
	if sum(a) % 2 == 0:
		print(n)
		print(*s)
	if sum(a) % 2 != 0 and len(a) > 1:
		if c >= 1:
			print(n - 1)
			del s[r]
			print(*s)
		else:
			print(-1)


t = int(input())
for z in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ind = 0
	ans = []
	count = 0
	boo = False
	for i in range(n):
		if a[i] % 2 == 0:
			count = 0
			ind = 1
			ans = [i + 1]
			boo = True
			print(ind)
			print(i + 1)
			break
		else:
			count += 1
			ans.append(i + 1)
			if count == 2:
				print(2)
				print(*ans)
				boo = True
				break
	if boo == False:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	(u, v) = (-1, -1)
	even = -1
	(o, e) = (0, 0)
	for i in range(n):
		if arr[i] % 2 == 0:
			e += 1
			even = i + 1
			break
		elif o == 0:
			u = i + 1
			o += 1
		elif o == 1:
			v = i + 1
			o += 1
	if e >= 1:
		print(1)
		print(even)
	elif o >= 2:
		print(2)
		print(u, v)
	else:
		print(-1)


for _ in range(int(input())):
	input()
	l = list()
	li = list()
	h = list()
	hi = list()
	for (i, n) in enumerate(list(map(int, input().split()))):
		if n % 2 == 0:
			l.append(n)
			li.append(i + 1)
		else:
			h.append(h)
			hi.append(i + 1)
		if len(h) == 2:
			l = h
			li = hi
			break
	if len(l) == 0:
		print(-1)
	else:
		print(len(l))
		print(' '.join(list(map(str, li))))


T = int(input())
for case in range(1, T + 1):
	n = int(input())
	array = list(map(int, input().split()))
	even_exists = any([x % 2 == 0 for x in array])
	if even_exists:
		for (index, number) in enumerate(array):
			if number % 2 == 0:
				print(1)
				print(index + 1)
				break
	elif len(array) == 1:
		print(-1)
	else:
		print(2)
		print('1 2')


import io
import os

def solve(N, A):
	evens = []
	odds = []
	for (i, x) in enumerate(A):
		if x % 2 == 0:
			evens.append((i, x))
		else:
			odds.append((i, x))
	ret = None
	if evens:
		ret = [evens[0][0] + 1]
	elif len(odds) >= 2:
		ret = [i + 1 for (i, x) in odds[:2]]
	if ret:
		return str(len(ret)) + '\n' + ' '.join(map(str, ret))
	return -1
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
T = int(input())
for t in range(T):
	(N,) = list(map(int, input().split()))
	A = list(map(int, input().split()))
	ans = solve(N, A)
	print(ans)


def buscarPares(lista):
	pos = 0
	for number in lista:
		if number % 2 == 0:
			return pos
		pos += 1
	return -1

def buscarImpares(lista):
	index1 = -1
	index2 = -1
	pos = 0
	for number in lista:
		if number % 2 != 0:
			if index1 == -1:
				index1 = pos
			else:
				index2 = pos
				break
		pos += 1
	return (index1, index2)
numberOfTest = int(input())
for test in range(numberOfTest):
	cantidadNumeros = int(input())
	numeros = list(map(int, input().split()))
	hayPares = buscarPares(numeros)
	if hayPares != -1:
		print('1')
		print(hayPares + 1)
	else:
		(posicion1, posicion2) = buscarImpares(numeros)
		if posicion1 != -1 and posicion2 != -1:
			print('2')
			print(posicion1 + 1, posicion2 + 1)
		else:
			print('-1')


import sys
input = sys.stdin.readline
import itertools
for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(1, n + 1):
		for t in itertools.combinations(range(n), i):
			s = 0
			for j in t:
				s += a[j]
			if s % 2 == 0:
				print(len(t))
				print(*[k + 1 for k in t])
				break
		else:
			continue
		break
	else:
		print(-1)
		continue


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	flag = False
	for (i, x) in enumerate(a):
		if x % 2 == 0:
			print(1)
			print(i + 1)
			flag = True
			break
	if flag:
		continue
	elif n < 2:
		print(-1)
	else:
		print(2)
		print(1, 2)


for i in range(int(input())):
	n = int(input())
	l = [int(j) % 2 for j in input().split()][:n]
	if l.count(0) > 0:
		print('1')
		print(l.index(0) + 1)
	elif len(l) == 1:
		print('-1')
	else:
		a = l.index(1)
		print('2')
		print(a + 1, l.index(1, a + 1) + 1)


from sys import stdin, stdout
t = int(stdin.readline().strip())
for _ in range(t):
	n = int(stdin.readline().strip())
	a = list(map(int, stdin.readline().strip().split()))
	f = 0
	for i in range(n):
		if a[i] % 2 == 0:
			ans = i + 1
			stdout.write('1' + '\n')
			stdout.write(str(ans) + '\n')
			f = 1
			break
	if f == 0:
		if n == 1:
			stdout.write('-1' + '\n')
		else:
			stdout.write('2' + '\n' + str(1) + ' ' + str(2) + '\n')


for __ in range(int(input())):
	N = int(input())
	L = list(map(int, input().split()))
	if len(L) == 1 and L[0] % 2 == 1:
		print(-1)
	elif L[0] % 2 == 0:
		print('1\n1')
	elif L[1] % 2 == 0:
		print('1\n2')
	else:
		print('2\n1 2')


test_cases = int(input())
for test_case in range(test_cases):
	n = int(input())
	arr = [int(i) for i in input().split(' ')]
	if n == 1 and arr[0] % 2 == 1:
		print('-1')
		continue
	flag = 0
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print('1')
			print(i + 1)
			flag = 1
			break
	if flag == 0:
		print('2')
		print(1, 2)


def number_sub_sequence(data_length, data):
	sums_indexes = []

	def number_sub_sequence_internal(current_pos, current_sum):
		if current_sum != 0 and current_sum % 2 == 0:
			return sums_indexes
		for i in range(current_pos, data_length):
			sums_indexes.append(i)
			val = number_sub_sequence_internal(current_pos + 1, current_sum + data[i])
			if val is not None:
				return val
			sums_indexes.pop()
	return number_sub_sequence_internal(0, 0)
for _ in range(int(input())):
	x = number_sub_sequence(int(input()), list(map(int, input().split())))
	if x is None or len(x) == 0:
		print(-1)
	else:
		print(len(x))
		print(' '.join((str(t) for t in list(map(lambda p: p + 1, x)))))


import sys
t = int(sys.stdin.readline())
for _ in range(t):
	n = int(sys.stdin.readline())
	line = sys.stdin.readline().split()
	nums = list(map(int, line))
	left = -1
	right = -1
	pair = -1
	for j in range(n):
		if nums[j] % 2 == 0:
			pair = j
			break
		else:
			if left == -1:
				left = j
			right = j
			if left != right:
				break
	if left == right and pair == -1:
		print(-1)
	elif pair != -1:
		print(1)
		print(pair + 1)
	else:
		print(right - left + 1)
		print(left + 1, right + 1)


for r in [0] * int(input()):
	n = input()
	a = [*map(int, input().split())]
	if a[0] % 2 == 0:
		print('1')
		print('1')
	elif n == '1':
		print(-1)
	elif a[1] % 2 == 0:
		print('1')
		print('2')
	else:
		print('2')
		print('1 2')


nb_cases = int(input())
reponses = []
for case in range(nb_cases):
	n = int(input())
	a = [int(x) % 2 for x in input().split()]
	if n == 1 and a[0] == 1:
		reponses.append(-1)
		continue
	if a[0] == 0:
		reponses.append('1')
		reponses.append('1')
		continue
	if a[1] == 0:
		reponses.append('1')
		reponses.append('2')
		continue
	if a[0] == 1 and a[1] == 1:
		reponses.append('2')
		reponses.append('1 2')
		continue
for x in reponses:
	print(x)


from collections import deque, defaultdict, Counter
from bisect import bisect_left, bisect
import math

def test_case():
	n = int(input())
	a = list(map(int, input().split()))
	odd = []
	for i in range(n):
		if not a[i] & 1:
			print(1)
			print(i + 1)
			break
		else:
			odd.append(i + 1)
		if len(odd) == 2:
			print(2)
			print(*odd)
			break
	else:
		print(-1)
for _ in range(int(input())):
	ret = test_case()
	if ret != None:
		print(ret)


import sys, math
input = sys.stdin.readline

def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	s = input()
	return s[:len(s) - 1]

def invr():
	return map(int, input().split())
t = 1
t = inp()
for tt in range(t):
	n = inp()
	a = inlt()
	q = -1
	for i in range(len(a)):
		if a[i] % 2 == 0:
			q = 1
			w = i + 1
			break
	if q == -1 and len(a) > 1:
		q = 2
		w = '1 2'
	print(q)
	if q != -1:
		print(w)


import sys
from functools import lru_cache, cmp_to_key
from heapq import merge, heapify, heappop, heappush
from math import *
from collections import defaultdict as dd, deque, Counter as C
from itertools import combinations as comb, permutations as perm
from bisect import bisect_left as bl, bisect_right as br, bisect, insort
from time import perf_counter
from fractions import Fraction
import copy
from copy import deepcopy
import time
starttime = time.time()
mod = int(pow(10, 9) + 7)
mod2 = 998244353

def data():
	return sys.stdin.readline().strip()

def out(*var, end='\n'):
	sys.stdout.write(' '.join(map(str, var)) + end)

def L():
	return list(sp())

def sl():
	return list(ssp())

def sp():
	return map(int, data().split())

def ssp():
	return map(str, data().split())

def l1d(n, val=0):
	return [val for i in range(n)]

def l2d(n, m, val=0):
	return [l1d(n, val) for j in range(m)]
try:
	sys.stdin = open('input.txt', 'r')
except:
	pass

def pmat(A):
	for ele in A:
		print(*ele, end='\n')
for _ in range(L()[0]):
	n = L()[0]
	A = L()
	if n == 1 and A[0] % 2 == 1:
		print(-1)
	else:
		even = []
		odd = []
		for i in range(n):
			ele = A[i]
			if ele % 2:
				odd.append(i)
			else:
				even.append(i)
		if len(even):
			print(1)
			print(even[0] + 1)
		else:
			print(2)
			print(odd[0] + 1, odd[1] + 1)
endtime = time.time()


def fn():
	a = -1
	b = -1
	for (i, n) in enumerate(map(int, input().split())):
		if n & 1 == 0:
			return [i + 1]
		elif a == -1:
			a = i + 1
		else:
			b = i + 1
	if b == -1:
		return []
	return [a, b]
for _ in range(int(input())):
	input()
	ret = fn()
	if len(ret) == 0:
		print('-1')
		continue
	print(len(ret))
	print(' '.join(map(str, ret)))


t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	e = [x + 1 for x in range(len(a)) if a[x] % 2 == 0]
	o = [x + 1 for x in range(len(a)) if a[x] % 2 == 1]
	ans = []
	if len(e) > 0:
		ans = e[:1]
	elif len(o) > 1:
		ans = o[:2]
	if len(ans) > 0:
		print(len(ans))
		for x in ans:
			print(x, end=' ')
		print()
	else:
		print(-1)


n1 = int(input())
for i in range(n1):
	n = int(input())
	x = [int(x) for x in input().split()]
	xo = []
	xe = []
	for i in range(n):
		if x[i] % 2 == 0:
			temp = (str(i + 1), x[i])
			xe.append(temp)
		else:
			temp = (str(i + 1), x[i])
			xo.append(temp)
	if len(xe) == 0 and len(xo) == 1:
		print(-1)
	elif len(xe) == 0 and len(xo) % 2 == 0:
		print(len(xo))
		for i in range(len(xo)):
			if i == len(xo) - 1:
				print(xo[i][0])
			else:
				print(xo[i][0], end=' ')
	elif len(xe) == 0 and len(xo) % 2 == 1:
		print(len(xo) - 1)
		for i in range(len(xo) - 1):
			if i == len(xo) - 2:
				print(xo[i][0])
			else:
				print(xo[i][0], end=' ')
	elif len(xe) > 0:
		print(len(xe))
		for i in range(len(xe)):
			if i == len(xe) - 1:
				print(xe[i][0])
			else:
				print(xe[i][0], end=' ')


t = int(input())
for i in range(t):
	num = int(input())
	nums = list(map(int, input().split(' ')))
	if len(nums) == 1:
		if nums[0] % 2 == 0:
			print('1')
			print('1')
		else:
			print('-1')
	else:
		hasFound = False
		for j in range(len(nums)):
			if nums[j] % 2 == 0:
				print('1')
				print(j + 1)
				hasFound = True
				break
		if not hasFound:
			print('2')
			print('1 2')


import sys
import math

def read_line():
	return sys.stdin.readline()[:-1]

def read_int():
	return int(sys.stdin.readline())

def read_int_line():
	return [int(v) for v in sys.stdin.readline().split()]
t = read_int()
for i in range(t):
	n = read_int()
	a = read_int_line()
	l = []
	for i in range(n):
		if a[i] % 2 == 0:
			l.append(i + 1)
	if len(l) == 0:
		if len(a) == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)
	else:
		print(len(l))
		print(*l)


test_cases = int(input())
for i in range(test_cases):
	size = int(input())
	a = []
	a = list(map(int, input().strip().split()))
	flag = 1
	for temp in range(size):
		if a[temp] % 2 == 0:
			print(1)
			print(temp + 1)
			flag = 0
		if flag == 0:
			break
	indi = 0
	for temp in range(size):
		for temp1 in range(size):
			if temp is not temp1 and (a[temp] + a[temp1]) % 2 == 0 and flag:
				print(2)
				print(temp + 1, temp1 + 1)
				indi = 1
			if indi == 1:
				break
		if indi == 1:
			break
	if flag == 1 and indi == 0:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = [int(c) for c in input().split()]
	if n == 1:
		if arr[0] & 1:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		ans = []
		for i in range(n):
			if arr[i] % 2 == 0:
				ans.append(i + 1)
				break
		if len(ans) == 0:
			print(2)
			print(1, 2)
		else:
			print(1)
			print(*ans)


import math
q = int(input())
for _ in range(q):
	n = int(input())
	l = list(map(int, input().split()))
	arr = [0] * n
	flag = True
	for i in range(n):
		if l[i] % 2 == 0:
			arr[i] = 1
			print(1)
			print(i + 1)
			flag = False
			break
	if flag:
		if n == 1:
			print(-1)
		elif n % 2 == 0:
			print(n)
			for i in range(n):
				flag = False
				print(i + 1, end=' ')
		else:
			print(n - 1)
			for i in range(n - 1):
				print(i + 1, end=' ')
				flag = False


nirvana = int(input())
for i in range(nirvana):
	n = input()
	ar = input().split(' ')
	arr = []
	for i in ar:
		arr.append(int(i))
	if int(n) == 1:
		if arr[0] % 2 == 0:
			print('1')
			print('1')
		else:
			print('-1')
	elif arr[0] % 2 == 0:
		print('1')
		print('1')
	elif arr[1] % 2 == 0:
		print('1')
		print('2')
	else:
		print('2')
		print('1 2')


from __future__ import division, print_function
from fractions import Fraction
import sys
import os
from io import BytesIO, IOBase
from itertools import *
import bisect
from heapq import *
from math import *
from copy import *
from collections import deque
from collections import Counter as counter
from itertools import combinations as comb
from itertools import permutations as permutate
from bisect import bisect_left as bl
from bisect import bisect_right as br
from bisect import bisect
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
mod = 1000000007

def inp():
	return sys.stdin.readline().rstrip('\r\n')

def out(var):
	sys.stdout.write(str(var))

def lis():
	return list(map(int, inp().split()))

def stringlis():
	return list(map(str, inp().split()))

def sep():
	return map(int, inp().split())

def strsep():
	return map(str, inp().split())

def zerolist(n):
	return [0] * n

def nextline():
	out('\n')

def testcase(t):
	for p in range(t):
		solve()

def printlist(a):
	for p in range(0, len(a)):
		out(str(a[p]) + ' ')

def lcm(a, b):
	return a * b // gcd(a, b)

def power(a, b):
	ans = 1
	while b > 0:
		if b % 2 == 1:
			ans *= a
		a *= a
		b //= 2
	return ans

def ncr(n, r):
	return factorial(n) // (factorial(r) * factorial(max(n - r, 1)))

def isPrime(n):
	if n <= 1:
		return False
	if n <= 3:
		return True
	if n % 2 == 0 or n % 3 == 0:
		return False
	i = 5
	while i * i <= n:
		if n % i == 0 or n % (i + 2) == 0:
			return False
		i = i + 6
	return True

def solve():
	n = int(inp())
	a = lis()
	e = 0
	o = 0
	for i in range(n):
		if a[i] % 2 == 0:
			e += 1
		else:
			o += 1
	if e == 0 and o <= 1:
		print(-1)
	elif e != 0:
		print(1)
		for i in range(n):
			if a[i] % 2 == 0:
				print(i + 1)
				break
	else:
		print(2)
		ind = []
		for i in range(n):
			if a[i] % 2 == 1:
				ind.append(i + 1)
			if len(ind) == 2:
				break
		print(*ind)
testcase(int(inp()))


def calc():
	n = int(input())
	arr = list(map(int, input().split()))
	res = []
	for i in range(n):
		if len(res) == 2:
			print(len(res))
			print(*res)
			return
		if arr[i] & 1:
			res.append(i + 1)
		else:
			print(1)
			print(i + 1)
			return
	if len(res) == 2:
		print(len(res))
		print(*res)
	else:
		print(-1)

def main():
	t = int(input())
	for _ in range(t):
		calc()
main()


for i in range(int(input())):
	a = int(input())
	b = list(map(int, input().split()))
	d = True
	f = []
	g = 0
	y = False
	for j in range(len(b) + 1):
		for h in range(j + 1, len(b) + 1):
			c = b[j:h]
			if sum(c) % 2 == 0:
				d = False
				if j == h:
					print(1)
					print(j + 1)
					y = True
					break
				else:
					print(h - j)
					for x in range(j, h):
						print(x + 1, end=' ')
					y = True
					print()
					break
		if y:
			break
	if d:
		print(-1)


T = int(input())
for _ in range(T):
	n = int(input())
	A = list(map(int, input().split()))
	flag = 0
	v = 0
	if n == 1:
		if A[0] % 2 != 0:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		for i in range(n):
			if A[i] % 2 == 0:
				flag = 1
				v = i + 1
				break
		if flag == 1:
			print(1)
			print(v)
		else:
			print(2)
			print('1 2')


t = int(input())
for i in range(t):
	n = int(input())
	c = list(map(int, input().split()))
	lis1 = []
	lis2 = []
	for j in range(len(c)):
		if c[j] % 2 == 0:
			lis1.append(j + 1)
		elif c[j] % 2 == 1:
			lis2.append(j + 1)
	if len(lis1) == 0:
		if len(lis2) % 2 == 1 and len(lis2) > 1:
			print(len(lis2) - 1)
			for k in range(len(lis2) - 1):
				print(lis2[k], end=' ')
			print()
		elif len(lis2) % 2 == 0:
			print(len(lis2))
			for k in range(len(lis2)):
				print(lis2[k], end=' ')
			print()
		else:
			print(-1)
	else:
		print(len(lis1))
		for k in range(len(lis1)):
			print(lis1[k], end=' ')
		print()


def solve():
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(0, n):
		if a[i] % 2 == 0:
			print(1, i + 1, sep='\n')
			return
	odd = []
	for i in range(0, n):
		if a[i] % 2 == 1 and len(odd) < 2:
			odd.append(i + 1)
	if len(odd) < 2:
		print(-1)
	else:
		print(2)
		print(*odd)
t = int(input())
while t > 0:
	t -= 1
	solve()


i = int(input())
for k in range(i):
	y = int(input())
	lst = list(map(int, input().split()))
	if len(lst) == 1:
		if lst[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif lst[0] % 2 == 0:
		print(1)
		print(1)
	elif lst[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1)
		print(2)


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	c = 0
	for i in l:
		if i % 2 == 0:
			x = l.index(i)
			print(1)
			print(x + 1)
			c = 1
			break
	if c == 0:
		if n == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)


T = int(input())
for _ in range(T):
	n = int(input())
	arr = list(map(int, input().split()))
	if n == 1 and arr[0] % 2 == 1:
		print(-1)
	else:
		i = 0
		while i < n:
			if arr[i] % 2 == 0:
				break
			i += 1
		if i < n:
			print(f'1\n{i + 1}')
		else:
			print('2\n1 2')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	ng = True
	for i in range(n):
		if a[i] & 1 == 0:
			print(1)
			print(i + 1)
			ng = False
			break
		if 0 < i and a[i - 1] & 1 == a[i] & 1:
			print(2)
			print(i, i + 1)
			ng = False
			break
	if ng:
		print(-1)


def solve(n, a):
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			return [i + 1]
	for i in range(n - 1):
		for j in range(i + 1, n):
			if (a[i] + a[j]) % 2 == 0:
				print(2)
				return (i + 1, j + 1)
	return [-1]

def main():
	q = int(input())
	for i in range(q):
		(n, a) = (int(input()), [int(j) for j in input().split()])
		print(*solve(n, a))
main()


for t in range(int(input())):
	n = int(input())
	a = [int(i) for i in input().split()]
	b = []
	c = []
	for i in range(n):
		if a[i] % 2 == 0:
			b.append(i)
		else:
			c.append(i)
		if len(b) >= 1 or len(c) >= 2:
			break
	if b != []:
		print(1)
		print(b[0] + 1)
	elif len(c) == 1:
		print(-1)
	else:
		print(2)
		print(c[0] + 1, c[1] + 1)


def sub(n, a):
	o = []
	for i in range(n):
		if a[i] % 2 == 0:
			print('1')
			return [i + 1]
		else:
			o.append(i + 1)
			if len(o) == 2:
				print('2')
				return o
	return [-1]
for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	print(*sub(n, a))


lis_ans = []
for i in range(int(input())):
	n = int(input())
	lis = list(map(int, input().split()))
	sum1 = 0
	else_lis = []
	for j in range(n):
		if lis[j] % 2 == 0:
			lis_ans.append(str(j + 1))
			break
		else:
			sum1 += lis[j]
			if sum1 % 2 == 0:
				else_lis.append(str(j + 1))
				lis_ans.append(else_lis)
				break
			else:
				else_lis.append(str(j + 1))
			if len(else_lis) == n:
				lis_ans.append(-1)
				break
for i in range(len(lis_ans)):
	if lis_ans[i] != -1:
		print(len(lis_ans[i]))
		print(*lis_ans[i])
	else:
		print(lis_ans[i])


t = int(input())
for _ in range(t):
	flag = 0
	n = int(input())
	ls = list(map(int, input().split()))
	for i in range(n):
		if ls[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
	if flag == 1:
		continue
	elif n == 1:
		print(-1)
		continue
	else:
		print(2)
		print('1 2')


from sys import stdin, stdout
import math
from collections import Counter, deque
L = lambda : list(map(int, stdin.readline().strip().split()))
M = lambda : map(int, stdin.readline().strip().split())
I = lambda : int(stdin.readline().strip())
IN = lambda : stdin.readline().strip()
C = lambda : stdin.readline().strip().split()
mod = 1000000007

def s(a):
	print(' '.join(list(map(str, a))))
for i in range(I()):
	n = I()
	a = L()
	if n == 1 and a[0] % 2 != 0:
		print(-1)
	elif a[0] % 2 == 0:
		print(1)
		print(1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


t = int(input())
for h in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		ind = []
		for i in range(n):
			if a[i] % 2 == 0:
				ind.append(i + 1)
		if len(ind) == 0:
			ind.append(1)
			ind.append(2)
		print(len(ind))
		print(*ind)


for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	f = 0
	for i in range(n):
		if l[i] % 2 == 0:
			f = 1
			a = i + 1
			break
	if f == 1:
		print(1)
		print(a)
	else:
		c = 0
		for i in range(n):
			if l[i] % 2 != 0:
				c += 1
				if c == 1:
					a = i + 1
				else:
					b = i + 1
					break
		if c >= 2:
			print(2)
			print(a, b)
		else:
			print(-1)


from sys import stdin

def solve(a):
	ans = False
	i = j = 0
	while i < len(a) and (not ans):
		ans = a[i] % 2 == 0
		if ans:
			print(1)
			print(i + 1)
		i += 1
	i = 0
	while i < len(a) and (not ans):
		j = i + 1
		while j < len(a) and (not ans):
			ans = (a[i] + a[j]) % 2 == 0
			if ans:
				print(2)
				print(i + 1, j + 1)
			j += 1
		i += 1
	if not ans:
		print(-1)

def main():
	t = int(stdin.readline().strip())
	for _ in range(t):
		stdin.readline()
		a = [int(x) for x in stdin.readline().strip().split()]
		solve(a)
main()


for i in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	k = 0
	for i in a:
		if i % 2 == 0:
			k = i
			break
	if k != 0:
		print(1)
		print(a.index(k) + 1)
	elif len(a) == 1:
		print(-1)
	else:
		print(2)
		print(1, 2)


x = int(input())
for i in range(x):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 != 0:
		print(-1)
	else:
		check = 0
		for ii in range(n):
			if a[ii] % 2 == 0:
				print(1)
				print(ii + 1)
				check = 1
				break
		if check == 0:
			print(2)
			print(1, 2)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split(' ')))
	ss = sum(a)
	if len(a) == 1 and ss & 1 == 1:
		print(-1)
		continue
	for (i, z) in enumerate(a):
		if z & 1 == 0:
			print(1)
			print(i + 1)
			break
	else:
		print(2)
		print('1 2')


for _ in range(int(input())):
	n = int(input())
	s = list(map(int, input().split()))
	odd = 0
	a = []
	f = 0
	for i in range(n):
		if s[i] % 2 == 0:
			print('1')
			print(i + 1)
			f = 1
			break
		else:
			odd = odd + 1
			a.append(str(i + 1))
			if odd == 2:
				print('2')
				s = ' '.join(a)
				print(s)
				f = 1
				break
	if f == 0:
		print('-1')


for i in range(int(input())):
	z = int(input())
	l = list(map(int, input().split(' ')))
	if z == 1:
		if l[0] % 2:
			print(-1)
		else:
			print(1)
			print(1)
	elif l[0] % 2 == 0:
		print(1)
		print(1)
	elif l[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


def evenlist(x):
	odd = []
	for i in range(len(x)):
		if x[i] % 2 == 0:
			return [i + 1]
		odd.append(i + 1)
		if len(odd) == 2:
			return odd
	return -1
cases = int(input())
for _ in range(cases):
	l = int(input())
	x = list(map(int, input().split()))
	y = evenlist(x)
	if y == -1:
		print(-1)
	else:
		print(len(y))
		print(*y)

def reorder(x):
	left = 0
	s = 0
	j = 0
	for i in x:
		if i == ')':
			left += 1
		elif i == '(':
			left -= 1
			if left == 0:
				s += j + 1
				j = 0
		if left > 0:
			j += 1
	if left != 0:
		return -1
	else:
		return s

def xorer(x):
	s = 0
	for i in range(len(x)):
		for j in range(i + 1, len(x)):
			s = s ^ x[i] + x[j]
	return s


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	tg = False
	ans = []
	for i in range(n):
		if a[i] % 2 == 0:
			ans.append(i + 1)
			tg = True
			break
	if tg:
		print(1)
		print(ans[0])
	else:
		c = 0
		for i in range(n):
			if a[i] % 2 == 1:
				c += 1
				ans.append(i + 1)
			if c == 2:
				break
		if c == 2:
			print(2)
			print(*ans)
		else:
			print(-1)


for _ in range(int(input())):
	n = int(input())
	A = list(map(int, input().split()))
	(C, count, f) = ([], 0, 0)
	for i in range(len(A)):
		if A[i] % 2 == 0:
			f = 1
			h = i + 1
			break
		else:
			C.append(str(i + 1))
			count += 1
			if count == 2:
				break
	if f == 1:
		print(1)
		print(h)
	elif len(C) == 1:
		print(-1)
	else:
		print(len(C))
		print(' '.join(C))


t = int(input())
for j in range(t):
	n = int(input())
	A = [int(i) for i in input().split()]
	if n == 1:
		if A[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	elif A[0] % 2 == 0:
		print(1)
		print(1)
	elif A[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


import sys
s = sys.stdin.read().split()
s = list(map(int, s))
(a, i) = (2, 1)
L = []
for x in range(s[0]):
	b = True
	(st, c) = ('', 0)
	(a, i) = (i + 1, i + 1 + s[i])
	L.append(s[a:i])
	for e in range(len(L[x])):
		if L[x][e] % 2 == 0:
			print(1)
			print(e + 1)
			b = False
			break
		elif L[x][e] % 2 == 1:
			c += 1
			st += str(e + 1) + ' '
			if c == 2:
				print(2)
				print(' '.join(st.split()))
				break
	if c != 2 and b:
		print(-1)


import sys
inp = sys.stdin.readline

def input():
	return inp().strip()

def iin():
	return int(input())

def lin():
	return list(map(int, input().split()))

def main():
	T = iin()
	while T:
		T -= 1
		n = iin()
		a = lin()
		(e, o) = ([[i, j] for (j, i) in enumerate(a) if i % 2 == 0], [[i, j] for (j, i) in enumerate(a) if i % 2])
		if e:
			print(1)
			print(e[0][1] + 1)
		elif len(o) > 1:
			print(2)
			print(o[0][1] + 1, o[1][1] + 1)
		else:
			print(-1)
main()


import sys
input = lambda : sys.stdin.readline().rstrip()
for _ in range(int(input())):
	n = int(input())
	arr = [int(x) for x in input().split()]
	if n == 1 and arr[0] % 2 == 1:
		print(-1)
	else:
		for i in range(n):
			if arr[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
		else:
			s = 0
			new = []
			for i in range(n):
				if arr[i] % 2 == 1:
					s += arr[i]
					new.append(i)
					if s % 2 == 0:
						print(len(new))
						print(' '.join([str(x + 1) for x in new]))
						break


def calc(n: int, arr: list):
	even = None
	odd: list = []
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			even = i + 1
			break
		elif len(odd) == 2:
			break
		elif arr[i] % 2 == 1:
			odd.append(i + 1)
	if even is not None:
		print(1)
		print(even)
	elif len(odd) == 2:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)

def main():
	for _ in range(int(input())):
		n: int = int(input())
		arr: list = list(map(int, input().split()))
		calc(n, arr)
main()


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif sum(a) % 2 == 0:
		print(n)
		print(' '.join((str(i + 1) for i in range(n))))
	else:
		r = -1
		print(n - 1)
		for j in range(n):
			if a[j] % 2 == 1:
				r = j + 1
				break
		s = list(set([i + 1 for i in range(n)]) - {r})
		print(' '.join((str(i) for i in s)))


from collections import defaultdict
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	o = []
	e = []
	even = False
	odd = False
	for i in range(n):
		if a[i] % 2 == 0:
			even = True
			e.append(i + 1)
			break
		else:
			o.append(i + 1)
			if len(o) >= 2:
				odd = True
				break
	if even:
		print('1')
		print(*e)
	elif odd:
		print('2')
		print(*o)
	else:
		print('-1')


t = int(input())
for _ in range(t):
	n = int(input())
	arr = [int(i) for i in input().split()]
	solution = False
	buff = []
	for (i, el) in enumerate(arr):
		if el % 2 == 0:
			print(1)
			print(i + 1)
			solution = True
			break
		elif len(buff) > 0:
			print(2)
			print('{} {}'.format(buff[0] + 1, i + 1))
			solution = True
			break
		else:
			buff.append(i)
	if not solution:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	f = 0
	for i in range(len(l)):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
		if i == 1:
			f = 2
			break
	if f == 1:
		continue
	if f == 2:
		print(2)
		print(1, 2)
		continue
	if f == 0:
		print(-1)
		continue


n = int(input())
while n:
	n -= 1
	k = int(input())
	list = [int(i) for i in input().split()]
	e_count = 0
	o_count = 0
	save = 0
	first = True
	res = True
	for i in range(len(list)):
		if list[i] % 2 != 0:
			o_count += 1
		if o_count == 1 and first == True:
			save = i
			first = False
		if list[i] % 2 == 0:
			print(1)
			print(i + 1)
			res = False
			break
		elif o_count % 2 == 0:
			print(o_count - save)
			for a in range(save, i + 1):
				print(a + 1, end=' ')
			res = False
			break
	if res:
		print(-1)


t = int(input())
while t:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
	else:
		ind = []
		for i in range(n):
			if a[i] & 1:
				ind.append(i + 1)
			if len(ind) == 2:
				print(2)
				print(*ind)
				break
		else:
			print(-1)


t = int(input())
while t != 0:
	t -= 1
	lst = []
	flag = False
	n = int(input())
	arr = list(map(int, input().split()))
	for i in range(n):
		if arr[i] % 2 == 0:
			print('1')
			flag = True
			print(i + 1)
			break
		else:
			lst.append(i + 1)
			if len(lst) == 2:
				print('2')
				for item in lst:
					print(item, end=' ')
				flag = True
				break
	if flag == False:
		print('-1')


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	k = list()
	c = 0
	fe = 0
	fo = 0
	for i in range(n):
		if a[i] % 2 == 0:
			fe = 1
			break
		else:
			k.append(i + 1)
			c = c + 1
			if c == 2:
				fo = 1
				break
	if fe == 0 and fo == 0:
		print(-1)
	elif fe:
		print(1)
		print(i + 1)
	else:
		print(2)
		print(*k)


for _ in range(int(input())):
	w = int(input())
	data = list(map(int, input().split()))
	out = []
	flag = False
	for i in range(w):
		if data[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = True
			break
		else:
			out.append(i + 1)
			if len(out) == 2:
				print(2)
				print(out[0], out[1])
				flag = True
				break
	if flag == False:
		print(-1)


t = int(input())
while t:
	flag = 0
	n = int(input())
	a = list(map(int, input().split()))
	for i in a:
		if i % 2 == 0:
			print(1)
			print(a.index(i) + 1)
			flag = 1
			break
	if flag == 0:
		if n == 1:
			print(-1)
		else:
			print(2)
			print('1 2')
	t -= 1


t = int(input())
while t > 0:
	input()
	l = input()
	a = [int(i) for i in l.split()]
	f = False
	if len(a) == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		for i in range(len(a)):
			if a[i] % 2 == 0:
				f = True
				print(1)
				print(i + 1)
				break
		if not f:
			print(2)
			print('1 2')
	t -= 1


for i in range(int(input())):
	(n, a) = (int(input()), list(map(int, input().split())))
	even = len(list(filter(lambda x: x % 2 == 0, a)))
	if n == 1 and a[0] % 2:
		print(-1)
	elif even:
		print(1)
		for i in range(n):
			if a[i] % 2 == 0:
				print(i + 1)
				break
	else:
		print(2)
		print(1, 2)


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	count = 0
	odd_index = []
	ans = False
	for j in range(n):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			ans = True
			break
		else:
			odd_index.append(j + 1)
			if len(odd_index) == 2:
				print(2)
				print(str(odd_index[0]) + ' ' + str(odd_index[1]))
				ans = True
				break
	if not ans:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	A = list(map(int, input().split()))
	index = 0
	for i in range(0, n):
		if A[i] % 2 == 0:
			index = i + 1
			c = 1
			break
	if len(A) == 1 and A[0] % 2 != 0:
		print(-1)
	elif index != 0:
		print(1)
		print(index)
	else:
		print(2)
		print(1, 2)


for T in range(int(input())):
	n = int(input())
	a = [int(x) for x in input().split()]
	k = 0
	ans = []
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif n == 1:
			print(-1)
		else:
			ans.append(i + 1)
			k += 1
			if k == 2:
				print(2)
				print(' '.join(map(str, ans)))
				break


q = lambda : map(int, input().split())
qi = lambda : int(input())
qs = lambda : input().split()
for _ in range(qi()):
	input()
	a = list(q())
	if len(a) == 1 and a[0] % 2 != 0:
		print(-1)
	elif [i for i in a if i % 2 == 0] == []:
		print(2)
		print(1, 2)
	else:
		print(1)
		print(a.index([i for i in a if i % 2 == 0][0]) + 1)


for _ in range(int(input())):
	n = int(input())
	l = [*map(int, input().split())]
	flag = False
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = True
			break
	if not flag:
		if len(l) == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)


def function(n, arr):
	odd = []
	index = []
	for (i, j) in enumerate(arr):
		if j % 2 == 0:
			return [[1], [i + 1]]
		odd.append(j)
		index.append(i + 1)
		if len(odd) == 2:
			return [[2], index]
	return [[-1]]
t = int(input())
while t:
	n = int(input())
	arr = list(map(int, input().rstrip().split()))
	for i in function(n, arr):
		print(*i)
	t -= 1


t = int(input())
for i in range(t):
	n = int(input())
	arr = [int(x) for x in input().split()]
	if n == 1 and arr[0] % 2 == 1:
		print(-1)
		continue
	if arr[0] % 2 == 0:
		print(1)
		print(1)
		continue
	if arr[1] % 2 == 0:
		print(1)
		print(2)
		continue
	print(2)
	print(1, 2)


from sys import stdin
from math import sqrt, factorial, ceil
from collections import Counter, defaultdict
from heapq import heapify, heapreplace, heappush, heappop
from bisect import bisect_left
t = int(stdin.readline())
while t:
	t -= 1
	n = int(stdin.readline())
	a = list(map(int, stdin.readline().split()))
	if n == 1 and a[0] & 1:
		print(-1)
	else:
		ans = 1
		for i in range(n):
			if a[i] & 1 == 0:
				print(1)
				print(i + 1)
				ans = 0
				break
			elif i > 0 and a[i - 1] & 1:
				print(2)
				print(i, i + 1)
				ans = 0
				break
			elif i < n - 1 and a[i + 1] & 1:
				print(2)
				print(i + 1, i + 2)
				ans = 0
				break
		if ans:
			print(-1)


for _ in range(int(input())):
	n = int(input())
	m = list(map(int, input().split()))
	m1 = []
	m2 = -1
	for i in range(n):
		if m[i] % 2 == 0:
			m2 = i
			break
		else:
			if len(m1) > 1:
				break
			m1.append(i)
	if len(m1) > 1:
		print(2)
		print(m1[0] + 1, m1[1] + 1)
	else:
		if m2 != -1:
			print(1)
			m2 += 1
		print(m2)


for tin in range(int(input())):
	n = int(input())
	k = 0
	a = list(map(int, input().split()))
	for _ in range(len(a)):
		if a[_] % 2 == 0:
			print(1)
			print(_ + 1)
			k = 1
			break
	if k == 0:
		if len(a) == 1:
			print(-1)
		else:
			print(2)
			print('1 2')


t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	ind = -1
	s = 0
	if n == 1 and l[0] % 2 == 1:
		print(-1)
	else:
		for (i, v) in enumerate(l):
			if v % 2 == 1:
				ind = i
			s += v
		if s % 2 == 0:
			print(n)
			for i in range(n):
				print(i + 1, end=' ')
		else:
			print(n - 1)
			for i in range(n):
				if i != ind:
					print(i + 1, end=' ')
		print('')


t = int(input())
for j in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	a = 0
	b = 0
	for i in range(n):
		if l[i] % 2 == 0:
			a += 1
		else:
			b += 1
	if a == 0 and b == 1:
		print(-1)
	elif a == 0 and b != 1:
		print(2)
		print(1, 2)
	elif a != 0:
		print(1)
		for i in range(n):
			if l[i] % 2 == 0:
				print(i + 1)
				break


t = int(input())
while t > 0:
	n = int(input())
	e = False
	ans = -1
	arr = list(map(int, input().split()))
	for i in range(n):
		a = arr[i]
		if a % 2 == 0:
			e = True
			ans = i + 1
	if e:
		x = 1
		print(str(x) + '\n' + str(ans))
	elif n > 1:
		x = 2
		print(str(x) + '\n' + '1 2')
	else:
		print(-1)
	t = t - 1


t = int(input())
for i in range(t):
	n = int(input())
	_list = list(map(int, input().split()))
	_len = len(_list)
	if _len == 1:
		if _list[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	elif _len > 1:
		if _list[0] % 2 == 0:
			print(1)
			print(1)
		elif _list[1] % 2 == 0:
			print(1)
			print(2)
		elif (_list[0] + _list[1]) % 2 == 0:
			print(2)
			print('1 2')


T = int(input())
for i in range(T):
	n = int(input())
	a = [int(j) for j in input().split()]
	sum = [0] * n
	sum[0] = a[0]
	for j in range(1, n):
		sum[j] = sum[j - 1] + a[j]
	mini = -1
	maxi = -1
	for j in range(n):
		if sum[j] % 2 == 0:
			mini = 0
			maxi = j
			break
	if maxi == -1 or mini == -1:
		for j in range(n - 1):
			found = False
			for k in range(j + 1, n):
				if (sum[k] - sum[j]) % 2 == 0:
					mini = j + 1
					maxi = k
					found = True
					break
			if found:
				break
	if mini == -1 or maxi == -1:
		print(-1)
	else:
		print(maxi - mini + 1)
		for j in range(mini, maxi + 1):
			print(j + 1, end=' ')
		print()


def existsEvenSubset(arr):
	n = len(arr)
	ans_indices = []
	i = 0
	j = 0
	while i < n and j < n:
		subset_sum = sum(arr[i:j + 1])
		if subset_sum % 2 != 0:
			j += 1
		else:
			for index in range(i, j + 1):
				ans_indices.append(index + 1)
			break
		if j == n:
			i += 1
			j = i
	if len(ans_indices) != 0:
		return ans_indices
	else:
		return -1
t = int(input())
for i in range(t):
	n = int(input())
	arr_str = input().split(' ')
	arr = []
	for elem in arr_str:
		arr.append(int(elem))
	ans = existsEvenSubset(arr)
	if ans != -1:
		print(len(ans))
		for num in ans:
			print(num, end=' ')
		print()
	else:
		print(-1)


res = ''
for _ in range(int(input())):
	n = int(input())
	arr = tuple(map(int, input().split()))
	evens = odds = 0
	even_idx = 0
	odd_idx = []
	for (i, num) in enumerate(arr):
		if num % 2 == 0:
			evens += 1
			even_idx = i + 1
			break
		else:
			odds += 1
			odd_idx.append(str(i + 1))
			if odds == 2:
				break
	if evens == 1:
		res += '1\n%d\n' % even_idx
	elif odds == 2:
		res += '2\n' + ' '.join(odd_idx) + '\n'
	else:
		res += '-1\n'
print(res)


ev = []
od = []
for y in range(int(input())):
	a = int(input())
	n = list(map(int, input().strip().split()[:a]))
	for x in range(len(n)):
		if n[x] % 2 == 0:
			ev.append([n[x], x + 1])
		else:
			od.append([n[x], x + 1])
	if ev != []:
		print(len(ev))
		for z in range(len(ev)):
			print(ev[z][1], end=' ')
		print()
	elif len(od) == 1:
		print(-1)
	elif len(od) % 2 == 0:
		print(len(od))
		for z in range(len(od)):
			print(od[z][1], end=' ')
	else:
		print(len(od) - 1)
		for z in range(len(od) - 1):
			print(od[z][1], end=' ')
	ev = []
	od = []


import sys
import bisect
import heapq
from time import perf_counter
from math import *
from collections import defaultdict as dd
from collections import deque
from collections import Counter as c
from itertools import combinations as comb
from bisect import bisect_left as bl, bisect_right as br, bisect
mod = pow(10, 9) + 7
mod2 = 998244353

def data():
	return sys.stdin.readline().strip()

def out(var):
	sys.stdout.write(var)

def l():
	return list(map(int, data().split()))

def sl():
	return list(map(str, data().split()))

def sp():
	return map(int, data().split())

def ssp():
	return map(str, data().split())

def l1d(n, val=0):
	return [val for i in range(n)]

def l2d(n, m, val=0):
	return [[val for i in range(n)] for j in range(m)]
for _ in range(int(data())):
	(even, odd) = ([], [])
	n = int(data())
	arr = l()
	for i in range(n):
		if arr[i] % 2:
			odd.append(i + 1)
		else:
			even.append(i + 1)
	if len(even) >= 1:
		print(len(even))
		print(*even)
		continue
	if len(odd) >= 2:
		print(2)
		print(odd[0], odd[1])
		continue
	print('-1')


for q in range(int(input())):
	a = int(input())
	l = list(map(int, input().split()))
	if a == 1 and l[0] % 2 == 1:
		print(-1)
	else:
		b = []
		for i in range(a):
			if l[i] % 2 == 0:
				print(1)
				print(i + 1)
				break
			else:
				b.append(i + 1)
			if len(b) == 2:
				print(2)
				print(*b)
				break


z = input
for i in range(int(z())):
	n = int(input())
	l = list(map(int, z().split()))
	s = sum(l)
	if s % 2 == 0:
		print(n)
		print(*[int(j) for j in range(1, n + 1)])
		continue
	if n == 1 and s % 2 != 0:
		print(-1)
		continue
	c = 0
	d = 0
	for j in l:
		if j % 2 != 0:
			d = 1
			break
		c += 1
	if d != 0:
		print(n - 1)
		p = []
		for j in range(1, n + 1):
			if j != c + 1:
				p.append(j)
		print(*p)
	else:
		print(-1)


t = int(input())
a = []
for i in range(t):
	k = input()
	b = list(map(int, input().split()))
	a.append(b)
for i in a:
	k = len(i)
	if k == 1 and i[0] % 2 != 0:
		print(-1)
	elif k == 1 and i[0] % 2 == 0:
		print(1)
		print(1)
	else:
		t = 0
		k = 0
		c = []
		for j in range(len(i)):
			if i[j] % 2 != 0:
				t += 1
				c.append(j + 1)
			else:
				k += 1
				p = j + 1
			if k == 1:
				print(1)
				print(j + 1)
				break
			if t == 2:
				print(2)
				print(f'{c[0]} {c[1]}')
				break


def process_test_case(i_test):
	n = int(input())
	input_vec = list(map(int, input().split()))
	if n == 1:
		if input_vec[0] % 2 == 1:
			print('-1')
		else:
			print('1')
			print('1')
		return None
	if input_vec[0] % 2 == 0:
		print('1')
		print('1')
	elif input_vec[1] % 2 == 0:
		print('1')
		print('2')
	else:
		print('2')
		print('1 2')
	return None
n_tests = int(input())
for i_test in range(1, n_tests + 1):
	process_test_case(i_test)


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	b = []
	c = 0
	for i in range(len(a)):
		if a[i] % 2 == 0:
			print('1')
			print(i + 1)
			break
		elif a[i] % 2 != 0:
			c += 1
			if len(a) == 1:
				print('-1')
				break
			b.append(i)
			if c == 2:
				print(c)
				print(b[0] + 1, end=' ')
				print(b[1] + 1)
				break
		else:
			print('-1')


test = int(input())
while test > 0:
	n = int(input())
	pos = 0
	flag = False
	i = 0
	a = list(map(int, input().split()))
	for ele in a:
		if ele % 2 == 0:
			flag = True
			pos = i + 1
		i += 1
	if len(a) == 1:
		if a[0] % 2 == 0:
			print('1\n1')
		else:
			print('-1')
	elif flag:
		print('1\n', pos)
	else:
		print('2\n1 2')
	test -= 1


for j in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	odd = []
	even = []
	for i in range(n):
		if l[i] % 2 == 0:
			even.append(str(i + 1))
		else:
			odd.append(str(i + 1))
	if len(even) > 0:
		print(len(even))
		s = ' '.join(even)
		print(s)
	elif len(odd) >= 2:
		print(2)
		s = ' '.join(odd[:2])
		print(s)
	else:
		print(-1)


t = int(input())
output = []
for sample in range(t):
	n = int(input())
	a = input().split(' ')
	for i in range(n):
		a[i] = int(a[i])
	if a[0] % 2 == 0:
		output.append((1, [1]))
	elif n == 1:
		output.append((-1, []))
	elif a[1] % 2 == 0:
		output.append((1, [2]))
	else:
		output.append((2, [1, 2]))
for ans in output:
	print(ans[0])
	if ans[0] > 0:
		for i in range(ans[0]):
			print(ans[1][i], end=' ')
		print()


def even(a):
	if a % 2 == 0:
		return True
	else:
		return False
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n < 2:
		if not even(l[0]):
			print(-1)
		else:
			print(1)
			print(1)
	elif even(l[0]):
		print(1)
		print(1)
	elif not even(l[1]):
		print(2)
		print(1, 2)
	elif even(l[1]):
		print(1)
		print(2)


import sys
input = sys.stdin.readline

def main():
	t = int(input())
	for _ in range(t):
		N = int(input())
		A = [int(x) for x in input().split()]
		ans1 = -1
		ans2 = []
		for (i, a) in enumerate(A):
			if a % 2 == 0:
				ans1 = 1
				ans2.append(i + 1)
				break
		if ans1 != -1:
			print(ans1)
			print(ans2[0])
			continue
		if N == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)
main()


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(lambda x: int(x) % 2, input().split()))
	if n == 1:
		if l[0] == 1:
			print(-1)
		else:
			print(1)
			print(1)
	elif 0 in l:
		for j in range(n):
			if l[j] == 0:
				print(1)
				print(j + 1)
				break
	else:
		print(2)
		print('1 2')


for _ in range(int(input())):
	q = int(input())
	w = list(map(int, input().split()))
	c = 1
	for i in range(q):
		if w[i] % 2 == 0:
			print(1)
			print(i + 1)
			c = 0
			break
	if c:
		if q > 1:
			print(2)
			print(1, 2)
		else:
			print(-1)


t = int(input())
sol = []
while t:
	t -= 1
	n = int(input())
	a = [int(i) for i in input().split()]
	d = [i for i in a if i & 1 == False]
	if len(d):
		sol.append([1, a.index(d[0]) + 1])
	elif len(a) == 1:
		sol.append(['-1'])
	else:
		sol.append([2, [1, 2]])
for i in sol:
	if i == ['-1']:
		print('-1')
	elif len(i) == 1:
		print(i)
	else:
		print(i[0])
		if i[0] == 1:
			print(i[1])
		else:
			print(*i[1])


for i in range(int(input())):
	x = int(input())
	p = list(map(int, input().split()))
	p.append(0)
	f = False
	for i in range(x):
		if p[i] % 2 == 0:
			print(1, i + 1, sep='\n')
			f = True
			break
		elif p[i + 1] % 2 == 1:
			print(2)
			print(i + 1, i + 2, sep=' ')
			f = True
			break
	if f == False:
		print(-1)


for _ in range(int(input())):
	lens = int(input())
	vals = [int(x) for x in input().split()]
	ans = []
	valid = False
	for (i, v) in enumerate(vals):
		if v % 2 == 0:
			print(1)
			print(i + 1)
			valid = True
			break
		elif len(ans) == 1:
			print(2)
			print(ans[0], i + 1)
			valid = True
			break
		else:
			ans.append(i + 1)
	if not valid:
		print(-1)


tasks = []
for _ in range(int(input())):
	(input(), tasks.append(list(map(int, input().split()))))
for arr in tasks:
	if len(arr) == 0 or (len(arr) == 1 and arr[0] % 2):
		print(-1)
	elif arr[0] % 2 == 0:
		print(1, 1, sep='\n')
	else:
		tmp = [[2], [1, 2]][arr[1] % 2]
		print(len(tmp))
		print(*tmp)


from sys import stdin
from collections import deque
from math import sqrt, floor, ceil, log, log2, log10, pi, gcd, sin, cos, asin, tan

def ii():
	return int(stdin.readline())

def fi():
	return float(stdin.readline())

def mi():
	return map(int, stdin.readline().split())

def fmi():
	return map(float, stdin.readline().split())

def li():
	return list(mi())

def lsi():
	x = list(stdin.readline())
	x.pop()
	return x

def si():
	return stdin.readline()
for _ in range(ii()):
	n = ii()
	a = li()
	f = -1
	for i in range(n):
		if not a[i] % 2:
			f = i + 1
	if f == -1:
		if n > 1:
			print(2)
			print(1, 2)
		else:
			print(f)
	else:
		print(1)
		print(f)


for i in range(int(input())):
	x = int(input())
	l = list(map(int, input().split()))
	k = sorted(l, key=lambda y: y % 2)
	if k[0] % 2 == 0:
		print(1)
		print(l.index(k[0]) + 1)
	elif len(k) == 1:
		print(-1)
	else:
		print(2)
		print(l.index(k[0]) + 1, end=' ')
		l.remove(k[0])
		print(l.index(k[1]) + 2)


t = int(input())
for i in range(t):
	n = int(input())
	li = [int(ele) for ele in input().split()][:n]
	for j in range(n):
		if len(li) == 1 and li[0] % 2 != 0:
			print(-1)
			break
		if li[j] % 2 == 0:
			print(1)
			print(j + 1)
			break
		elif (li[j] + li[j + 1]) % 2 == 0:
			print(2)
			print(j + 1, '', j + 2)
			break


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(i) % 2 for i in input().split()]
	p = a.count(0)
	q = a.count(1)
	if p == 0 and q == 1:
		print(-1)
	elif p > 0:
		print(1)
		for i in range(len(a)):
			if a[i] == 0:
				print(i + 1)
				break
	elif p == 0 and q > 1:
		print(2)
		c = 0
		for i in range(len(a)):
			if a[i] == 1:
				print(i + 1, end=' ')
				if c == 1:
					break
			c = c + 1


for i in range(int(input())):
	x = int(input())
	y = input().split()
	index = 0
	for j in range(x):
		if int(y[j]) % 2 == 0:
			index = j + 1
	if index == 0 and x > 1:
		print(2)
		print('1 2')
	elif index != 0:
		print(1)
		print(index)
	else:
		print(-1)


def examA():
	t = I()
	ans = []
	for _ in range(t):
		N = I()
		A = LI()
		flag = False
		for (i, a) in enumerate(A):
			if a % 2 == 0:
				flag = True
				ans.append((1, i + 1))
				break
		if flag:
			continue
		if N == 1:
			ans.append(-1)
			continue
		ans.append(2)
	for v in ans:
		if v == 2:
			print(2)
			print('1 2')
		elif v == -1:
			print(-1)
		else:
			print(v[0])
			print(v[1])
	return

def examB():
	ans = 0
	print(ans)
	return

def examC():
	ans = 0
	print(ans)
	return

def examD():
	ans = 0
	print(ans)
	return

def examE():
	ans = 0
	print(ans)
	return

def examF():
	ans = 0
	print(ans)
	return
import sys, copy, bisect, itertools, heapq, math, random
from heapq import heappop, heappush, heapify
from collections import Counter, defaultdict, deque

def I():
	return int(sys.stdin.readline())

def LI():
	return list(map(int, sys.stdin.readline().split()))

def LSI():
	return list(map(str, sys.stdin.readline().split()))

def LS():
	return sys.stdin.readline().split()

def SI():
	return sys.stdin.readline().strip()
global mod, mod2, inf, alphabet, _ep
mod = 10 ** 9 + 7
mod2 = 998244353
inf = 10 ** 18
_ep = 10 ** (-12)
alphabet = [chr(ord('a') + i) for i in range(26)]
examA()


T = int(input())
for _ in range(T):
	n = int(input())
	arr = list(map(int, input().split(' ')))
	odd = []
	flag = 0
	for i in range(n):
		if arr[i] % 2 == 0:
			print('1\n' + str(i + 1))
			flag = 1
			break
		else:
			odd.append(i + 1)
	if flag == 0 and len(odd) >= 2:
		print('2\n' + str(odd[0]) + ' ' + str(odd[1]))
	elif flag == 0:
		print(-1)


t = int(input())
b = []
k = []
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		if a[0] % 2 == 0:
			b.append('1')
			k.append('1')
		else:
			b.append('-1')
			k.append('')
	elif a[0] % 2 == 0:
		b.append('1')
		k.append('1')
	elif a[1] % 2 == 0:
		b.append('1')
		k.append('2')
	else:
		b.append('2')
		k.append('1 2')
for i in range(len(b)):
	print(b[i])
	if k[i] != '':
		print(k[i])


def main():
	n = int(input())
	nums = [int(s) & 1 for s in input().split()]
	ans = []
	for (i, num) in enumerate(nums):
		if num == 0:
			print(1)
			print(i + 1)
			return
		ans.append(i + 1)
		if len(ans) == 2:
			print(2)
			print(' '.join([str(a) for a in ans]))
			return
	print(-1)
try:
	test_num = int(input())
	for _ in range(test_num):
		main()
except EOFError:
	pass


def s():
	n = int(input())
	arr = [int((int(x) - 1) % 2) for x in input().split(' ')]
	ans = 0
	temp = 0
	w = []
	for (ind, x) in enumerate(arr):
		if x == 1:
			w = [ind + 1]
			break
		elif not temp == 0:
			w.append(temp)
			w.append(ind + 1)
			break
		else:
			temp = ind + 1
	if len(w) > 0:
		print(len(w))
		for j in range(len(w) - 1):
			print(w[j], end=' ')
		print(w[len(w) - 1])
	else:
		print(-1)
t = int(input())
for q in range(t):
	s()


from sys import stdin
from collections import deque
mod = 10 ** 9 + 7
import sys
import random
from queue import PriorityQueue
from bisect import bisect_right
from bisect import bisect_left
from collections import defaultdict
from math import sqrt, factorial, gcd, log2, inf, ceil
import heapq
input = lambda : sys.stdin.readline().rstrip()
from sys import stdin, stdout
from heapq import heapify, heappush, heappop
from itertools import permutations
from math import factorial as f

def ncr(x, y):
	return f(x) // (f(y) * f(x - y))
t = int(input())
for _ in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	ka1 = []
	ka2 = []
	for i in range(n):
		if l[i] % 2 == 0:
			ka1.append(i + 1)
		elif len(ka2) == 2:
			pass
		else:
			ka2.append(i + 1)
	if ka1:
		print(len(ka1))
		print(*ka1)
	elif len(ka2) == 2:
		print(2)
		print(*ka2)
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	sum = 0
	for j in range(n):
		sum += arr[j]
		if arr[j] % 2 == 0:
			print(1)
			print(j + 1)
			break
		elif sum % 2 == 0:
			print(j + 1)
			print(' '.join(map(str, [l for l in range(1, j + 2)])))
			break
	else:
		print(-1)


T = int(input())
for i in range(T):
	n = int(input())
	arr = input().split()
	arr = [int(num) for num in arr]
	indx = []
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			indx.append(i + 1)
			break
	if not indx:
		if len(arr) == 1:
			if arr[0] % 2 == 0:
				indx.append(1)
		else:
			indx.append(1)
			indx.append(2)
	if indx:
		print(len(indx))
		for num in indx:
			print(num, end=' ')
		print()
	else:
		print(-1)


for ii in range(0, int(input())):
	n = int(input())
	mylist = list(map(int, input().split()))
	prev = 0
	previ = -1
	flag = 1
	for i in range(0, len(mylist)):
		if mylist[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 0
			break
		if prev > 0:
			print(2)
			print(previ + 1, i + 1)
			flag = 0
			break
		else:
			prev = mylist[i]
			previ = i
	if flag:
		print(-1)


for i in range(int(input())):
	len1 = int(input())
	l1 = list(map(int, input().split()))
	if len1 == 1 and l1[0] % 2 != 0:
		print(-1)
		continue
	elif len1 == 1 and l1[0] % 2 == 0:
		print(1)
		print(1)
		continue
	elif len1 >= 2:
		for j in range(len1):
			if l1[j] % 2 == 0:
				print(1)
				print(j + 1)
				break
		for k in range(len1):
			if l1[j] % 2 == 0:
				break
			else:
				print(2)
				print('1 2')
				break


t = int(input())
for i in range(t):
	n = int(input())
	s = [int(k) for k in input().split()]
	l = []
	last_odd = -1
	for j in range(len(s)):
		if s[j] % 2 != 0:
			if last_odd != -1:
				l.append(str(j + 1))
				l.append(str(last_odd + 1))
				last_odd = -1
			else:
				last_odd = j
		else:
			l.append(str(j + 1))
	x = -1 if len(l) == 0 else len(l)
	print(x)
	if x != -1:
		print(' '.join(l))


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	a = list(map(lambda v: v % 2, a))
	find = False
	for (i, a_) in enumerate(a):
		if a_ == 0:
			print(1)
			print(i + 1)
			find = True
			break
	if find:
		continue
	for (i, a_) in enumerate(a):
		if a_ == 1:
			find = False
			for j in range(i + 1, len(a)):
				if a[j] == 1:
					print(j - i + 1)
					print(i + 1, j + 1)
					find = True
					break
			if find:
				break
	if not find:
		print(-1)


t = int(input())
q = []
for i in range(t):
	n = int(input())
	l = list(input().split())
	l = [int(j) for j in l]
	if n == 1 and l[0] % 2 != 0:
		q.append(-1)
	elif n == 1:
		q.append(1)
		q.append(1)
	elif l[0] % 2 != 0 and l[1] % 2 != 0:
		q.append(2)
		q.append('1 2')
	else:
		q.append(1)
		if l[0] % 2 == 0:
			q.append(1)
		else:
			q.append(2)
for i in q:
	print(i)


from sys import stdin

def read_tuple():
	return map(int, input().split())

def read_int():
	return int(input())

def read_list():
	return list(map(int, input().split()))

def read_str_list():
	return list(input().split())
for _ in range(read_int()):
	n = read_int()
	arr = read_list()
	res = []
	if n == 2:
		if arr[0] % 2 == 1 and arr[1] % 2 == 1:
			res = [1, 2]
		elif arr[0] % 2 == 0:
			res = [1]
		else:
			res = [2]
	elif n == 1:
		if arr[0] % 2 == 0:
			res = [1]
	else:
		for i in range(n):
			if arr[i] % 2 == 0:
				res = [i + 1]
				break
		if len(res) == 0:
			res = [1, 2]
	if len(res) == 0:
		print(-1)
	else:
		print(len(res))
		print(*res)


n = int(input())
for i in range(n):
	s = int(input())
	s = 0
	k = list(map(int, input().split()))
	if len(k) == 1:
		if k[0] % 2 == 0 and k[0] > 1:
			print('1')
			print('1')
		else:
			print('-1')
	elif k[0] % 2 == 0:
		print('1')
		print('1')
	elif k[1] % 2 == 0:
		print('1')
		print('2')
	else:
		print('2')
		print('1', '2')


from sys import stdin
for i in range(int(stdin.readline().strip())):
	stdin.readline()
	a = list(map(int, stdin.readline().strip().split(' ')))
	tmp1 = None
	cont = False
	for j in range(len(a)):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			cont = not cont
			break
		else:
			if tmp1 != None:
				print(2)
				print(str(tmp1[1]) + ' ' + str(j + 1))
				cont = not cont
				break
			tmp1 = (a[j], j + 1)
	if cont:
		continue
	print(-1)


t = int(input())
l = []
for i in range(t):
	n = int(input())
	a = input().split()
	a = [int(j) for j in a]
	if len(a) == 1 and a[0] % 2 != 0:
		l.append('-1')
		continue
	for k in range(2):
		if a[k] % 2 == 0:
			l.append(1)
			l.append(k + 1)
			break
		elif k > 0:
			l.append('2')
			l.append('1 2')
			break
for i in l:
	print(i)


for i in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	c = 0
	i1 = -1
	i2 = -1
	f = 0
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
		if i1 == -1:
			i1 = i + 1
			continue
		i2 = i + 1
		f = 1
		print(2)
		print(i1, i2)
		break
	if f == 0:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	lst = list(map(int, input().strip().split(' ')))
	l = []
	l1 = []
	f = 0
	for j in range(n):
		if lst[j] % 2 == 0:
			print('1')
			print(lst.index(lst[j]) + 1)
			f = 1
			break
		else:
			l.append(lst[j])
			l1.append(j + 1)
		if len(l) == 2:
			print('2')
			print(l1[0], l1[1], end=' ')
			print()
			f = 1
			break
	if f == 0:
		print('-1')


import math
import bisect

def list_input():
	return list(map(int, input().split()))

def num_input():
	return map(int, input().split())

def string_input():
	return list(input())
for t in range(int(input())):
	n = int(input())
	arr = list_input()
	ans = []
	flag = False
	for i in range(n):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = True
			break
		else:
			ans.append(i + 1)
			if len(ans) == 2:
				break
	if not flag:
		if len(ans) == 2:
			print(2)
			print(ans[0], ans[1])
		else:
			print(-1)


from collections import defaultdict as dd
import sys
input = sys.stdin.readline
t = int(input())
while t:
	n = int(input())
	ev = 0
	od = 0
	cou = 0
	l = list(map(int, input().split()))
	for ii in range(n):
		i = l[ii]
		if i % 2:
			od += i
			cou += 1
			if cou == 1:
				prev = ii + 1
		else:
			print(1)
			print(ii + 1)
			ev = i
			break
		if cou == 2:
			print(2)
			print(prev, ii + 1)
			break
	if ev == 0 and cou < 2:
		print(-1)
	t -= 1


t = int(input())
while t > 0:
	n = int(input())
	a = list(map(int, input().split()))
	if a[0] % 2 == 0:
		print(1)
		print(1)
	elif n == 1:
		print(-1)
	elif a[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)
	t = t - 1


def solve(arr):
	even = next(iter(filter(lambda x: x[1] % 2 == 0, enumerate(arr))), None)
	if even is not None:
		print('1')
		print(even[0] + 1)
		return
	if len(arr) > 1:
		print('2')
		print('1 2')
		return
	print('-1')
for _ in range(int(input())):
	input()
	arr = list(map(int, input().split()))
	solve(arr)


t = int(input())
for k in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	c = 0
	for el in arr:
		if el % 2 == 1:
			c += 1
			index = arr.index(el)
	if c % 2 == 1:
		if len(arr) == 1:
			print(-1)
			continue
		print(len(arr) - 1)
		for i in range(1, len(arr) + 1):
			if i != index + 1:
				print(i, ' ', end='')
		print()
	else:
		print(len(arr))
		print(*[x for x in range(1, len(arr) + 1)])


def main():
	d = int(input())
	for i in range(d):
		c = int(input())
		data = [int(v) for v in input().split()]
		if any((v % 2 == 0 for v in data)):
			print(1)
			print(next((str(i + 1) for (i, v) in enumerate(data) if v % 2 == 0)))
		elif len([v for v in data if v % 2 != 0]) >= 2:
			print(2)
			print(' '.join([str(i + 1) for (i, v) in enumerate(data) if v % 2 != 0][0:2]))
		else:
			print(-1)
main()


for t in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	o = []
	c = 0
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			c += 1
			o.append(i + 1)
			if len(o) > 1:
				print(c)
				print(o[-2], o[-1])
				break
	else:
		print(-1)


T = int(input())
for i in range(T):
	N = int(input())
	flag = 1
	lst = list(map(int, input().split()))
	if N == 1 and lst[0] % 2 == 1:
		print(-1)
	elif lst[0] % 2 == 0:
		print(1)
		print(1)
	elif lst[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2, sep=' ')


t = int(input())
for i in range(t):
	n = int(input())
	s = list(map(int, input().split()))
	two = []
	nottwo = []
	flag = 0
	for i in range(n):
		if s[i] % 2 == 0:
			two.append(i + 1)
		else:
			nottwo.append(i + 1)
		if len(two) == 1:
			print(1)
			print(*two)
			flag = 1
			break
		if len(nottwo) == 2:
			print(2)
			print(*nottwo)
			flag = 1
			break
	if flag == 0:
		print(-1)


t = int(input())
for w in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	f = 0
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			f = 1
			break
	if n >= 2:
		if f == 0:
			print(2)
			print(1, 2)
	if n == 1:
		if f == 0:
			print(-1)


import sys
import math
from collections import defaultdict, Counter
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	c = []
	for j in range(n):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			break
		else:
			c.append(j + 1)
			if len(c) == 2:
				print(2)
				print(*c)
				break
	else:
		print(-1)


import sys
reader = (s.rstrip() for s in sys.stdin)
input = reader.__next__

def solve():
	n = int(input())
	a = list(map(int, input().split()))
	odd = []
	for i in range(n):
		ai = a[i]
		if ai % 2 == 0:
			print(1)
			print(i + 1)
			return
		else:
			odd.append(i + 1)
	if len(odd) > 1:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)
t = int(input())
for i in range(t):
	solve()


t = int(input().strip())
for _ in range(t):
	n = int(input().strip())
	nums = [int(i) for i in input().strip().split()]
	if n == 1 and nums[0] % 2 != 0:
		print(-1)
	else:
		has = False
		for i in range(n):
			if nums[i] % 2 == 0:
				ans = i
				has = True
				break
		if has:
			print(1)
			print(ans + 1)
		else:
			print(2)
			print(1, 2)


TC = int(input())
for iLoop in range(TC):
	n = int(input())
	a = list(map(int, input().split()))
	ok = 0
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			ok = 1
			break
	if ok:
		continue
	if n == 1:
		print(-1)
	else:
		print(2)
		print(1, 2)


t = int(input())
while t > 0:
	n = int(input())
	l = []
	l = list(map(int, input().split()))
	if len(l) == 1:
		if l[0] % 2 != 0:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		(a, b) = (0, 0)
		for i in range(len(l)):
			if l[i] % 2 == 0:
				a = i
				break
		if a == 0 and l[a] % 2 != 0:
			print(2)
			print('1' + ' ' + '2')
		else:
			print(1)
			print(a + 1)
	t = t - 1


def findAnswer(a, n):
	indexes = []
	for index in range(n):
		if a[index] % 2 == 0:
			indexes.clear()
			indexes.append(index + 1)
			return indexes
		else:
			indexes.append(index + 1)
		if len(indexes) == 2:
			return indexes
testCases = int(input())
for _ in range(testCases):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2 != 0:
		print(-1)
	elif n == 1:
		print(1)
		print(1)
	else:
		answer = findAnswer(a, n)
		print(len(answer))
		print(*answer)


t = int(input())
for i in range(t):
	n = int(input())
	it = list(map(int, input().split()))
	if n == 1 and it[0] % 2 == 1:
		print(-1)
	else:
		ind = -1
		ind2 = -1
		ind3 = -1
		for j in range(n):
			if it[j] % 2 == 0:
				ind = j
			elif ind2 == -1:
				ind2 = j
			else:
				ind3 = j
		if ind == -1:
			print(2)
			print(ind2 + 1, ind3 + 1)
		else:
			print(1)
			print(ind + 1)


from __future__ import division, print_function
import os
import sys
from io import BytesIO, IOBase
if sys.version_info[0] < 3:
	from __builtin__ import xrange as range
	from future_builtins import ascii, filter, hex, map, oct, zip

def main():
	t = int(input())
	for _ in range(t):
		l = int(input())
		n = list(map(int, input().split()))
		arr = list()
		f = 0
		for (i, x) in enumerate(n):
			if x % 2 == 0:
				print(1)
				print(i + 1)
				f = 1
				break
		if f == 0:
			for (i, x) in enumerate(n):
				if x % 2 != 0:
					if len(arr) == 0:
						arr.append(i + 1)
					else:
						print(2)
						print('{} {}'.format(arr[0], i + 1))
						f = 1
						break
		if f == 0:
			print(-1)
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')
main()


try:
	for _ in range(int(input())):
		n = int(input())
		l = list(map(int, input().split()))
		f = c = 0
		m = []
		if n == 1:
			if l[0] % 2 == 0:
				print(1)
				print(1)
			else:
				print(-1)
		else:
			for i in range(n):
				if c < 2:
					if l[i] % 2 == 0:
						print(1)
						print(i + 1)
						f = 1
						break
					else:
						c = c + 1
						j = i + 1
						m.append(j)
				else:
					break
			if c == 2 and f == 0:
				print(2)
				print(*m)
except:
	pass


for i in range(int(input())):
	n = int(input())
	ans = -1
	s = list(map(int, input().split()))
	for j in range(len(s) - 1):
		if ans == -1 and s[j] % 2 == 1 and (s[j + 1] % 2 == 1):
			ans = 2
			anss = [j + 1, j + 2]
		if s[j] % 2 == 0:
			ans = 1
			anss = [j + 1]
	if s[-1] % 2 == 0:
		ans = 1
		anss = [len(s)]
	if ans == -1:
		print(-1)
	else:
		print(ans)
		print(*anss)


from sys import stdin, stdout

def main():
	T = int(stdin.readline())
	for _ in range(T):
		n = int(stdin.readline())
		arr = list(map(int, stdin.readline().split()))
		ind = []
		cnt = 0
		found = False
		for (i, x) in enumerate(arr):
			if x % 2 == 0:
				stdout.write('1\n' + str(i + 1) + '\n')
				found = True
				break
			if x % 1 == 0:
				ind.append(i + 1)
				cnt += 1
			if cnt == 2:
				break
		if cnt == 2:
			stdout.write('2\n' + str(ind[0]) + ' ' + str(ind[1]) + '\n')
		elif found is False:
			stdout.write('-1\n')
main()


def solve():
	n = int(input())
	array = list(map(int, input().split()))
	if n == 1 and array[0] % 2 == 1:
		print(-1)
		return
	else:
		odd = []
		for index in range(n):
			if array[index] % 2 == 0:
				print(1)
				print(index + 1)
				return
			else:
				odd.append(index + 1)
				if len(odd) == 2:
					print(2)
					print(*odd)
					return
for _ in range(int(input())):
	solve()


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	f = 0
	ind = -1
	for i in range(n):
		if a[i] % 2 == 0:
			f = 1
			ind = i + 1
			break
	if f == 1:
		print(1)
		print(ind)
	elif n == 1:
		print(-1)
	elif n % 2 == 0:
		ans = [i + 1 for i in range(n)]
		print(n)
		print(*ans)
	else:
		ans = [i + 1 for i in range(n - 1)]
		print(n - 1)
		print(*ans)


for _ in range(int(input())):
	n = int(input())
	arr = [int(i) for i in input().split()]
	pos = []
	for i in range(n):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			if pos:
				pos.append(i + 1)
				print(2)
				print(*pos)
				break
			pos.append(i + 1)
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1 and a[0] % 2:
		print(-1)
		continue
	elif n == 1:
		print(1)
		print(1)
		continue
	ind = -1
	for i in range(n):
		if a[i] % 2 == 0:
			ind = i
			break
	if ind > -1:
		print(1)
		print(ind + 1)
	else:
		print(2)
		print(1, 2)


tc = int(input())
for _ in range(tc):
	n = int(input())
	(*arr,) = map(int, input().split())
	odd_idx1 = -1
	odd_idx2 = -1
	even_idx = -1
	for (i, v) in enumerate(arr):
		if v % 2 == 0:
			even_idx = i
		elif v % 2 == 1:
			if odd_idx1 == -1:
				odd_idx1 = i
			else:
				odd_idx2 = i
	if even_idx == -1 and odd_idx2 == -1:
		print(-1)
	elif even_idx != -1:
		print(1)
		print(even_idx + 1)
	else:
		print(2)
		print(odd_idx1 + 1, odd_idx2 + 1)


def getSubsetSum(arr, n):
	if n == 0:
		return ([-1], 0)
	if arr[0] % 2 == 0:
		return ([1], 1)
	if n > 1:
		if arr[1] % 2 == 0:
			return ([2], 1)
		else:
			return ([1, 2], 2)
	return ([-1], 0)
test = int(input().strip())
while test != 0:
	n = int(input().strip())
	arr = [int(x) for x in input().strip().split()]
	(index, count) = getSubsetSum(arr, n)
	if index[0] == -1:
		print(index[0])
	else:
		print(count)
		for i in index:
			print(i, end=' ')
		print()
	test -= 1


t = int(input())
f_ans = []
for p in range(t):
	(ans, n_list) = ([], [])
	k = int(input())
	ctr = 0
	inps = [int(a) for a in input().split()]
	for i in range(k):
		if inps[i] % 2 == 0:
			n_list.append(i + 1)
			break
		else:
			for j in range(i + 1, k):
				if inps[j] % 2 != 0:
					n_list.append(i + 1)
					n_list.append(j + 1)
					break
		if len(n_list) > 0:
			break
	f_ans.append(n_list)
for i in range(t):
	if len(f_ans[i]) != 0:
		print(len(f_ans[i]))
		for a in f_ans[i]:
			print(a, end=' ')
			print('\n')
	else:
		print(-1)


for i in range(int(input())):
	n = int(input())
	x = list(map(int, input().split()))
	(even_index, odd_index1, odd_index2) = (0, 0, 0)
	for j in range(n):
		if x[j] % 2 == 0:
			even_index = j + 1
			break
		elif odd_index1 == 0:
			odd_index1 = j + 1
		else:
			odd_index2 = j + 1
	if even_index != 0:
		print(1)
		print(even_index)
	elif odd_index2 == 0:
		print(-1)
	else:
		print(2)
		print(odd_index1, odd_index2)


def readNumber():
	n = input()
	return int(n)
t = readNumber()
for test in range(t):
	n = readNumber()
	ok = 0
	lst_impar = 0
	numbers = input().split()
	index = 1
	for i in numbers:
		x = int(i)
		if x % 2 == 0:
			ok = 1
			print('1\n' + str(index))
			break
		else:
			if lst_impar != 0:
				ok = 1
				print('2\n' + str(lst_impar) + ' ' + str(index))
				break
			lst_impar = index
		index += 1
	if ok == 0:
		print(str(-1))


t = int(input())
for i in range(t):
	l = int(input())
	L = [int(x) for x in input().split()]
	if len(L) == 1 and sum(L) % 2 == 1:
		print(-1)
	else:
		L = list(map(lambda x: x % 2, L))
		if 0 in L:
			print(1)
			print(L.index(0) + 1)
		else:
			I = [i for (i, x) in enumerate(L) if x == 1]
			print(2)
			print(I[0] + 1, I[1] + 1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	left = None
	for (i, el) in enumerate(a, 1):
		if el % 2 == 0:
			print(1)
			print(i)
			break
		elif left is None:
			left = i
		else:
			print(2)
			print(left, i)
			break
	else:
		print(-1)


from sys import stdin, stdout
t = int(stdin.readline())
while t > 0:
	n = int(stdin.readline())
	e = False
	ans = -1
	arr = list(map(int, stdin.readline().split()))
	for i in range(n):
		a = arr[i]
		if a % 2 == 0:
			e = True
			ans = i + 1
	if e:
		x = 1
		stdout.write(str(x) + '\n' + str(ans) + '\n')
	elif n > 1:
		x = 2
		stdout.write(str(x) + '\n' + '1 2' + '\n')
	else:
		stdout.write('-1\n')
	t = t - 1


def solution(t):
	for i in range(t):
		input()
		m1 = map(int, input().split())
		even = []
		odd = []
		for (i, v) in enumerate(m1):
			if v % 2:
				odd.append((v, i))
			else:
				even.append((v, i))
		if even:
			print(1)
			print(even[0][1] + 1)
		elif len(odd) == 1:
			print(-1)
		else:
			print(2)
			print(odd[0][1] + 1, odd[1][1] + 1)

def main():
	t = int(input())
	solution(t)
main()


n = int(input())
for _ in range(n):
	m = int(input())
	a = [int(i) for i in input().split()]
	me = 0
	if m > 1:
		if a[0] % 2 == 0:
			print('1')
			print('1')
		elif a[1] % 2 == 0:
			print('1')
			print('2')
		else:
			print('2')
			print('1', '2')
	elif a[0] % 2 == 0:
		print('1')
		print('1')
	else:
		print('-1')


for _ in range(int(input())):
	n = int(input())
	arr = [int(s) for s in input().split()]
	ind = -1
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			ind = i
			break
	if ind == -1:
		if n == 1:
			print(-1)
		else:
			print(2)
			print(1, 2)
	else:
		print(1)
		print(ind + 1)


for _ in range(int(input())):
	n = int(input())
	arr = [int(i) for i in input().split()]
	e = -1
	o1 = -1
	o2 = -1
	for i in range(n):
		if arr[i] % 2 == 0:
			e = arr[i]
			inde = i + 1
			break
		elif o1 == -1:
			o1 = arr[i]
			indo1 = i + 1
		else:
			o2 == -1
			o2 = arr[i]
			indo2 = i + 1
			break
	if e != -1:
		print('1')
		print(inde)
	elif o1 != -1 and o2 != -1:
		print('2')
		print(indo1, indo2)
	else:
		print('-1')


result = []
for _ in range(int(input())):
	n = int(input())
	l = [int(x) for x in input().split()]
	if l[0] % 2 == 0:
		result.append(1)
		result.append(1)
	elif n == 1:
		result.append(-1)
	elif l[1] % 2 == 1:
		result.append(2)
		result.append('1 2')
	else:
		result.append(1)
		result.append(2)
print(*result, sep='\n')


for ___ in range(int(input())):
	n = int(input())
	lst = list(map(int, input().split()))
	nech = 0
	ans = []
	for i in range(len(lst)):
		if lst[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			nech += 1
			ans.append(i + 1)
			if nech == 2:
				print(2)
				for i in ans:
					print(i, end=' ')
				break
	else:
		print(-1)


import itertools
import math
import sys
import heapq
from collections import Counter
from collections import deque
from fractions import gcd
from functools import reduce
sys.setrecursionlimit(4100000)
INF = 1 << 60
MOD = 10 ** 9 + 7
t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	odd = []
	flag = True
	for j in range(n):
		if a[j] % 2 == 0:
			print(1)
			print(j + 1)
			flag = False
			break
		elif len(odd) == 0:
			odd.append(j + 1)
		else:
			print(2)
			print(odd[0], j + 1)
			flag = False
			break
	if flag:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	f = list(filter(lambda i: a[i] % 2 == 0, range(n)))
	if len(f) > 0:
		print(1, f[0] + 1, sep='\n')
	elif n == 1:
		print(-1)
	else:
		print('2\n1 2')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().strip().split(' ')))
	kk = 0
	for i in range(n):
		if a[i] % 2 == 0:
			kk = 1
			p = i + 1
	if kk:
		print(1)
		print(p)
	elif n == 1:
		print(-1)
	else:
		f = -22
		ff = -22
		for j in range(n - 1):
			if (a[j] + a[j + 1]) % 2 == 0:
				f = j + 1
				ff = j + 2
		if f != -22 and ff != -22:
			print(2)
			print(f, ff)
		else:
			print(-1)


from sys import stdin, stdout, setrecursionlimit
import heapq
from math import gcd, ceil, sqrt
from collections import Counter, deque
from bisect import bisect_left, bisect_right
ii1 = lambda : int(stdin.readline().strip())
is1 = lambda : stdin.readline().strip()
iia = lambda : list(map(int, stdin.readline().strip().split()))
isa = lambda : stdin.readline().strip().split()
setrecursionlimit(100000)
mod = 1000000007
tc = ii1()
for _ in range(tc):
	n = ii1()
	arr = iia()
	(even, odd) = ([], [])
	for i in range(n):
		if arr[i] % 2 == 0:
			even.append(i + 1)
		else:
			odd.append(i + 1)
	if len(even):
		print(1)
		print(even[0])
	elif len(odd) >= 2:
		print(2)
		print(*odd[:2])
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	odd = 0
	even = 0
	ind = []
	for i in range(n):
		if arr[i] % 2 == 0:
			even = 1
			ind = [i + 1]
			break
		elif odd == 0:
			odd += 1
		else:
			odd += 1
			ind = [i, i + 1]
			break
	else:
		print(-1)
	if even == 1:
		print(1)
		print(*ind, sep=' ')
	if odd == 2:
		print(2)
		print(*ind, sep=' ')


for nt in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n == 1 and l[0] % 2:
		print(-1)
		continue
	if l[0] % 2 == 0:
		print(1)
		print(1)
		continue
	if l[1] % 2 == 0:
		print(1)
		print(2)
		continue
	print(2)
	print(1, 2)


for _ in range(int(input())):
	n = int(input())
	arr = [int(num) for num in input().split(' ')]
	if n == 1 and arr[0] % 2 != 0:
		ans = -1
		print(ans)
	else:
		f = 0
		for i in range(n):
			if arr[i] % 2 == 0:
				ans = [i + 1]
				f = 1
				break
		if f == 0:
			ans = []
			f = 2
			for i in range(n):
				if arr[i] % 2 != 0:
					ans.append(i + 1)
				if len(ans) == 2:
					break
		print(f)
		for item in ans:
			print(item, end=' ')
		print('')


for _ in range(int(input())):
	n = int(input())
	A = [*map(int, input().split())]
	if n < 2:
		if A[0] % 2:
			print(-1)
		else:
			print(1, 1, sep='\n')
	elif A[0] % 2:
		if A[1] % 2:
			print(2)
			print(1, 2)
		else:
			print(1, 2, sep='\n')
	else:
		print(1, 1, sep='\n')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	count = sum1 = 0
	for i in range(n):
		if a[i] % 2 == 0:
			count += 1
	if count == 0 and n - count == 1:
		print(-1)
	elif count == 0 and n - count > 1:
		print(2)
		for j in range(2):
			print(j + 1, end=' ')
		print('')
	else:
		print(1)
		for j in range(n):
			if a[j] % 2 == 0:
				print(a.index(a[j]) + 1)
				break


t = int(input())

def fun(n, a):
	flag = 0
	for i in range(n):
		for j in range(i + 1, n + 1):
			s = a[i:j]
			if sum(s) % 2 == 0:
				print(j - i)
				ss = [k + 1 for k in range(i, j)]
				print(*ss, sep=' ')
				flag += 1
			if flag:
				break
		if flag:
			break
	if flag == 0:
		print(-1)
while t:
	n = int(input())
	a = [int(i) for i in input().split()]
	fun(n, a)
	t -= 1


def foo():
	flag = True
	b = []
	for j in range(len(a)):
		if a[j] % 2 == 0:
			print('1')
			print(j + 1)
			return
		b.append(j + 1)
		if len(b) == 2:
			print('2')
			print(*b)
			return
	print('-1')
	return
t = int(input())
for i in range(t):
	n = int(input())
	a = [int(s) for s in input().split()]
	foo()


t = int(input())
for i in range(t):
	n = int(input())
	ch = input()
	p = ch.split(' ')
	l = [int(u) for u in p]
	if n == 1 and l[0] % 2 == 1:
		print(-1)
	test = True
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			test = False
			break
	if test and n > 1:
		print(2)
		print(1, 2)


t = int(input())
while t > 0:
	n = int(input())
	c = 0
	l = []
	x = list(map(int, input().split()))
	for i in range(n):
		if x[i] % 2 == 0:
			c += 1
			l.append(i + 1)
	if c >= 1:
		print(1)
		print(l[0])
	elif c == 0 and len(x) > 1:
		print(2)
		print(1, 2)
	else:
		print(-1)
	t -= 1


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(j) for j in input().split()]
	z = -1
	if len(a) == 1 and a[0] % 2 != 0:
		print(-1)
		continue
	for j in range(len(a)):
		if a[j] % 2 == 0 and a[j] != 0:
			z = j
	if z != -1:
		print(1)
		print(z + 1)
		continue
	print('2')
	print('1 2')


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	L = list(map(int, input().split()))
	evens = [i for i in L if not i % 2]
	if evens != []:
		print(1)
		print(L.index(evens[0]) + 1)
	elif n >= 2:
		print(2)
		print(1, 2)
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	a = [int(num) for num in input().strip().split()]
	if n == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		odd_count = 0
		odds = []
		for (idx, num) in enumerate(a):
			if num % 2 == 0:
				print(1)
				print(idx + 1)
				break
			else:
				odd_count += 1
				odds.append(idx + 1)
				if odd_count == 2:
					print(2)
					print(odds[0], odds[1])
					break


big_list = []
for i in range(int(input())):
	l = int(input())
	nums = list(map(int, input().split()))
	index_of_first_odd = -1
	index_of_second_odd = -1
	req = []
	for num in range(l):
		if nums[num] % 2 == 0:
			req = [str(num + 1)]
			break
		elif index_of_first_odd == -1:
			index_of_first_odd = num + 1
		elif index_of_second_odd == -1:
			index_of_second_odd = num + 1
			req = [str(index) for index in range(index_of_first_odd, index_of_second_odd + 1)]
			break
	big_list.append(len(req) if req else -1)
	big_list.append(' '.join(req) if req else 'p')
for i in big_list:
	if i != 'p':
		print(i)


from sys import stdin, stdout
import bisect
import math

def st():
	return list(stdin.readline().strip())

def inp():
	return int(stdin.readline())

def li():
	return list(map(int, stdin.readline().split()))

def mp():
	return map(int, stdin.readline().split())

def pr(n):
	stdout.write(str(n) + '\n')

def soe(limit):
	l = [1] * (limit + 1)
	prime = []
	for i in range(2, limit + 1):
		if l[i]:
			for j in range(i * i, limit + 1, i):
				l[j] = 0
	for i in range(2, limit + 1):
		if l[i]:
			prime.append(i)
	return prime

def segsoe(low, high):
	limit = int(high ** 0.5) + 1
	prime = soe(limit)
	n = high - low + 1
	l = [0] * (n + 1)
	for i in range(len(prime)):
		lowlimit = low // prime[i] * prime[i]
		if lowlimit < low:
			lowlimit += prime[i]
		if lowlimit == prime[i]:
			lowlimit += prime[i]
		for j in range(lowlimit, high + 1, prime[i]):
			l[j - low] = 1
	for i in range(low, high + 1):
		if not l[i - low]:
			if i != 1:
				print(i)

def power(a, n):
	r = 1
	while n:
		if n & 1:
			r = r * a
			n = n - 1
		else:
			a = a * a
			n = n >> 1
	return r

def solve():
	n = inp()
	l = li()
	a = []
	b = []
	for i in range(n):
		if l[i] & 1:
			a.append(i + 1)
		else:
			b.append(i + 1)
	if b:
		print(len(b))
		print(*b)
	elif len(a) > 1:
		print(2)
		print(a[0], a[1])
	else:
		print('-1')
for _ in range(inp()):
	solve()


from collections import Counter
from collections import defaultdict
import math
import random
import heapq as hq
from math import sqrt
import sys
from functools import reduce

def input():
	return sys.stdin.readline().strip()

def iinput():
	return int(input())

def tinput():
	return input().split()

def rinput():
	return map(int, tinput())

def rlinput():
	return list(rinput())
mod = int(1000000000.0) + 7

def factors(n):
	return set(reduce(list.__add__, ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0)))
for _ in range(iinput()):
	n = iinput()
	a = rlinput()
	even = []
	odd = []
	for i in range(n):
		if a[i] % 2:
			odd.append(i + 1)
		else:
			even.append(i + 1)
	if len(even) >= 1:
		print(1)
		print(even[0])
	elif len(odd) >= 2:
		print(2)
		print(odd[0], odd[1])
	else:
		print(-1)


t = int(input())
while t:
	t -= 1
	n = int(input())
	a = list(map(int, input().split()))
	o = list()
	e = list()
	for i in range(n):
		if int(a[i] % 2) == 0:
			e.append(i + 1)
		else:
			o.append(i + 1)
	r = list()
	if len(e) == 0:
		if len(o) <= 1:
			r.append(-1)
		else:
			r.append(o[0])
			r.append(o[1])
	else:
		r.append(e[0])
	if r[0] != -1:
		print(len(r))
		for i in range(len(r)):
			print(r[i], end=' ')
		print()
	else:
		print(-1)


from sys import stdin
input = stdin.readline
t = int(input())
for _ in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	if n == 1 and a[0] % 2 > 0:
		print(-1)
		continue
	odd = []
	for i in range(n):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		else:
			odd.append(i + 1)
			if len(odd) == 2:
				print(2)
				print(*odd)
				break


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	noOfSubs = 1 << n
	subs = []
	for i in range(0, noOfSubs):
		pos = n - 1
		bit = i
		temp = []
		poses = []
		while bit > 0:
			if bit & 1 == 1:
				temp.append(a[pos])
				poses.append(pos + 1)
			bit >>= 1
			pos -= 1
		subs.append(temp)
		if temp and sum(temp) % 2 == 0:
			print(len(temp))
			print(*sorted(poses), sep=' ')
			break
	else:
		print(-1)


def main():
	t = int(input())
	for _ in range(t):
		n = int(input())
		odds = []
		found = False
		for (i, j) in zip(list(map(int, input().split())), range(1, n + 1)):
			if i % 2 == 0:
				print(1, j, sep='\n')
				found = True
				break
			else:
				odds.append(j)
			if len(odds) == 2:
				print(2, f'{odds[0]} {odds[1]}', sep='\n')
				found = True
				break
		if not found:
			print(-1)
main()


t = int(input())
while t != 0:
	n = int(input())
	A = map(int, input().split())
	B = list(A)
	tmp = 0
	if n == 1 and B[0] % 2 == 1:
		print(-1)
	else:
		for i in range(n):
			if B[i] % 2 == 0:
				tmp = 1
				break
		if tmp == 0:
			print(2)
			print(1, 2)
		else:
			print(1)
			print(i + 1)
	t -= 1


def solve():
	n = int(input())
	A = list(map(int, input().split()))
	B = []
	for i in range(n):
		if A[i] % 2 == 0:
			print(1)
			print(i + 1)
			return
		if A[i] % 2 == 1:
			B.append(i + 1)
			if len(B) == 2:
				print(2)
				print(B[0], B[1])
				return
	print(-1)
for _ in range(int(input())):
	solve()


tests = int(input())
for _ in range(tests):
	n = int(input())
	arr = list(map(int, input().split()))
	t = 0
	x = 0
	d = []
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			t = 1
			break
		else:
			d.append(i + 1)
			x += 1
			if x == 2:
				print(2)
				print(*d)
				break
	if t == 1:
		continue
	elif x == 2:
		continue
	else:
		print(-1)


q = int(input())
for t in range(q):
	n = int(input())
	l = [int(x) for x in input().split()]
	odd = []
	s = True
	for i in range(n):
		if l[i] % 2 == 0:
			print(1)
			print(i + 1)
			s = False
			break
		elif len(odd) == 1:
			odd.append(i + 1)
			print(2)
			print(odd[0], odd[1])
			s = False
			break
		else:
			odd.append(i + 1)
	if s == True:
		print(-1)


t = int(input())
while t:
	t -= 1
	n = int(input())
	lst = list(map(int, input().split()))
	count = 0
	sum1 = 0
	ind = []
	flag1 = 0
	flag = 0
	for i in range(n):
		if lst[i] % 2 == 0:
			flag = 1
			sum1 = i + 1
			break
		elif sum1 % 2 == 0 and sum1 != 0:
			flag1 = 1
			break
		else:
			sum1 += lst[i]
			ind.append(i + 1)
	if flag == 1:
		print(1)
		print(sum1)
	elif flag1 == 1 or len(ind) >= 2:
		print(2)
		print(*ind)
	else:
		print(-1)


def sub_lists(list1):
	sub = []
	for i in range(len(list1) + 1):
		for j in range(i + 1, len(list1) + 1):
			sub = list1[i:j]
			if sum(sub) % 2 == 0:
				return [sub, i, j]
			else:
				continue
	return [-1, -1, -1]
t = int(input())
for i in range(0, t):
	a = []
	no = int(input())
	a = list(map(int, input().split()))
	out = sub_lists(a)
	i = out[1] + 1
	j = out[2] + 1
	if out[1] != -1:
		print(len(out[0]))
		ran = [x for x in range(i, j)]
		for y in ran:
			print(y, end=' ')
		print()
	else:
		print('-1')


q = int(input())
for i in range(q):
	n = int(input())
	a = [int(i) for i in input().split()]
	f = 0
	pred = -1
	for i in range(len(a)):
		if a[i] % 2 == 1:
			if pred != -1:
				print(2)
				print(pred + 1, i + 1)
				f = 1
				break
			else:
				pred = i
		else:
			print(1)
			print(i + 1)
			f = 1
			break
	if f == 0:
		print(-1)


def solve(a):
	if len(a) == 1:
		if a[0] % 2 == 1:
			return (-1, [])
		else:
			return (1, [0])
	odd = []
	even = []
	for (i, s) in enumerate(a):
		if s % 2 == 0:
			even.append(i)
		else:
			odd.append(i)
	if len(even) >= 1:
		return (1, even[:1])
	if len(odd) >= 2:
		return (2, odd[:2])
	return (-1, [])
k = int(input())
for _ in range(k):
	n = int(input())
	a = [int(s) for s in input().split(' ')]
	(res, indices) = solve(a)
	print(res)
	if res != -1:
		print(' '.join([str(x + 1) for x in indices]))


tests = int(input())
n = []
arrays = []
for i in range(0, tests):
	n.append(int(input()))
	arrays.append(list(map(int, input().split())))
for i in range(0, tests):
	if n[i] == 1:
		if arrays[i][0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		flag = 0
		for j in range(0, n[i]):
			if arrays[i][j] % 2 == 0:
				print(1)
				print(j + 1)
				flag = 1
				break
		if flag == 0:
			print(2)
			print(1, 2)


for i in range(int(input())):
	q = int(input())
	w = list(map(int, input().split()))
	r = [str(i) for i in range(1, q + 1)]
	e = sum(w)
	if e % 2 == 0:
		print(q)
		print(' '.join(r))
	else:
		for i in range(q):
			if w[i] % 2 != 0 and q > 1:
				r.pop(i)
				print(q - 1)
				print(' '.join(r))
				e = -2
				break
		if e != -2:
			print(-1)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	r = []
	f = False
	if n == 1:
		if a[0] % 2:
			print(-1)
		else:
			print(1, 1, sep='\n')
	else:
		for i in range(1, n):
			if a[i - 1] % 2 and a[i] % 2:
				f = True
				r.append(i)
				r.append(i + 1)
				break
		if not f:
			for i in range(n):
				if a[i] % 2 == 0:
					f = True
					r.append(i + 1)
					break
			if not f:
				print(-1)
			else:
				print(1, r[0], sep='\n')
		else:
			print(2)
			print(*r)


for i in range(int(input())):
	am = int(input())
	arr = list(map(int, input().split()))
	if am == 1 and arr[0] % 2 == 1:
		print(-1)
	elif arr[0] % 2 == 0:
		print(1)
		print(1)
	elif arr[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print(1, 2)


ans = []
for _ in range(int(input())):
	p = 0
	n = int(input())
	l = [int(i) for i in input().split()]
	for i in range(len(l)):
		if l[i] % 2 == 0:
			ans.append('1')
			ans.append('{}'.format(i + 1))
			p = 1
			break
	if p == 0:
		if len(l) == 1:
			ans.append('-1')
		else:
			ans.append('2')
			ans.append('1 2')
for a in ans:
	print(a)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	even = [(x, i) for (i, x) in enumerate(a) if x % 2 == 0]
	odd = [(x, i) for (i, x) in enumerate(a) if x % 2 == 1]
	if n == 1 and (not even):
		print(-1)
	elif even:
		print(1)
		print(even[0][1] + 1)
	else:
		print(2)
		print(odd[0][1] + 1, odd[1][1] + 1)


a = int(input())
f = []
for i in range(a):
	b = int(input())
	c = list(map(int, input().split()))
	ans = []
	for j in range(len(c)):
		if c[j] % 2 == 0:
			f += [1]
			f += [j + 1]
			ans = []
			break
		elif ans == []:
			ans += [j + 1]
		elif len(ans) == 1:
			ans += [j + 1]
			f += [2]
			f += [ans]
			break
	if len(ans) == 1:
		f += [-1]
for i in f:
	if type(i) == int:
		print(i)
	else:
		print(*i)


import sys
from functools import lru_cache, cmp_to_key
from heapq import merge, heapify, heappop, heappush
from math import *
from collections import defaultdict as dd, deque, Counter as C
from itertools import combinations as comb, permutations as perm
from bisect import bisect_left as bl, bisect_right as br, bisect
from time import perf_counter
from fractions import Fraction
sys.setrecursionlimit(int(pow(10, 6)))
mod = int(pow(10, 9) + 7)
mod2 = 998244353

def data():
	return sys.stdin.readline().strip()

def out(*var, end='\n'):
	sys.stdout.write(' '.join(map(str, var)) + end)

def L():
	return list(sp())

def sl():
	return list(ssp())

def sp():
	return map(int, data().split())

def ssp():
	return map(str, data().split())

def l1d(n, val=0):
	return [val for i in range(n)]

def l2d(n, m, val=0):
	return [l1d(n, val) for j in range(m)]
t = 1
t = int(input())
for _ in range(t):
	n = L()[0]
	A = L()
	if n == 1 and A[0] % 2:
		print(-1)
	else:
		ans = []
		for i in range(n):
			if A[i] % 2 == 0:
				ans.append(i + 1)
				break
		if len(ans) == 0:
			ans = [1, 2]
		print(len(ans))
		print(*ans)


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	e = [i for i in range(n) if a[i] % 2 == 0]
	if len(e) > 0:
		print(1)
		print(e[0] + 1)
	else:
		o = [i for i in range(n) if a[i] % 2 != 0]
		if len(o) > 1:
			print(2)
			print(o[0] + 1, o[1] + 1)
		else:
			print(-1)


def solve(n, iarr):
	lastodd = None
	for i in range(n):
		if iarr[i] & 1:
			if lastodd != None:
				return f'2\n{lastodd + 1} {i + 1}'
			else:
				lastodd = i
		else:
			return f'1\n{i + 1}'
	return '-1'
T = int(input())
for t in range(T):
	n = int(input())
	iarr = list(map(int, input().split()))
	print(solve(n, iarr))


from sys import stdin
t = int(stdin.readline())
for i in range(t):
	n = int(stdin.readline())
	A = list(map(int, stdin.readline().split(' ')))
	if n == 1:
		if A[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	elif A[0] % 2 == 0:
		print(1)
		print(1)
	elif A[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


t = int(input())
for u in range(t):
	n = int(input())
	a = [int(i) for i in input().split()]
	even = -1
	odd1 = -1
	odd2 = -1
	for i in range(n):
		if a[i] % 2 == 0:
			even = i + 1
		elif odd1 == -1:
			odd1 = i + 1
		else:
			odd2 = i + 1
	if even > 0:
		print(1)
		print(even)
	elif odd2 > 0:
		print(2)
		print(odd1, odd2)
	else:
		print(-1)


c = int(input())
for i in range(c):
	n = int(input())
	l = list(map(int, input().split()))
	if len(l) == 1 and l[0] % 2 == 1:
		print(-1)
	elif l[0] % 2 == 0:
		print(1, '\n', 1)
	elif l[1] % 2 == 0:
		print(1, '\n', 2)
	else:
		print(2, '\n', 1, 2)


testcase = int(input())
for t in range(1, testcase + 1):
	size = int(input())
	elems = list(map(int, input().split(' ')))
	subset_odd = []
	count = 0
	flag = 0
	for i in range(size):
		if elems[i] % 2 == 0:
			print(1)
			print(i + 1)
			flag = 1
			break
		elif count < 2:
			subset_odd.append(i + 1)
			count += 1
			if count == 2:
				flag = 1
				print(count)
				print(*subset_odd)
				break
	if not flag:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	nums = list(map(int, input().split()))
	prefix = [0] * (n + 1)
	prefix[0] = 0
	for i in range(1, n + 1):
		prefix[i] = prefix[i - 1]
		prefix[i] += nums[i - 1]
	flag = False
	for i in range(n + 1):
		for j in range(i):
			a = prefix[i] - prefix[j]
			if a % 2 == 0:
				ans = (j, i)
				flag = True
				break
		if flag:
			break
	if flag:
		print(ans[1] - ans[0])
		for k in range(ans[0], ans[1]):
			print(k + 1, end=' ')
		print('\n')
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	e = 0
	e_ind = -1
	o = []
	o_ind = []
	for i in range(n):
		if arr[i] % 2 == 0:
			e = arr[i]
			e_ind = i + 1
			break
		elif len(o) == 2:
			break
		else:
			o.append(arr[i])
			o_ind.append(i + 1)
	if e_ind != -1:
		print(1)
		print(e_ind)
	elif len(o_ind) > 1:
		print(len(o))
		print(*o_ind)
	else:
		print(-1)


n = int(input())
flag = 0
for i in range(n):
	s = int(input())
	L = list(map(int, input().split()))
	sum = 0
	flag = 0
	ans = []
	for k in range(len(L)):
		if L[k] % 2 == 0:
			print(1)
			print(k + 1)
			flag = 12
			break
		else:
			sum += L[k]
			ans.append(k + 1)
		if sum % 2 == 0:
			print(len(ans))
			for i in ans:
				print(i, end=' ')
			flag = 1
			break
	if flag == 0:
		print(-1)


t = int(input())
while t > 0:
	t -= 1
	n = int(input())
	arr = list(map(int, input().split()))
	pr = -1
	for i in range(len(arr)):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif pr != -1:
			print(2)
			print(pr + 1, i + 1)
			break
		else:
			pr = i
	else:
		print(-1)


for _ in range(int(input())):
	n = int(input())
	li = list(map(int, input().split()))
	z = -1
	k = []
	for ii in range(n):
		i = li[ii]
		if i % 2 == 0:
			z = ii + 1
		else:
			k.append(ii + 1)
	if z != -1:
		print(1)
		print(z)
	elif len(k) > 1:
		print(2)
		print(k[0], k[1])
	else:
		print(-1)


I = input

def solve():
	n = int(I())
	ar = list(map(int, I().split()))
	c = []
	for i in range(n):
		if ar[i] & 1 == 0:
			print('1\n' + str(i + 1))
			return
		else:
			c.append(i + 1)
			if len(c) == 2:
				print(2)
				print(*c)
				return
	print(-1)
for _ in range(int(I())):
	solve()


for _ in range(int(input())):
	size = int(input())
	elements = list(map(int, input().split()))
	if size == 1:
		if elements[0] % 2 == 1:
			print(-1)
		else:
			print(1)
			print(1)
	elif elements[0] % 2 == 0:
		print(1)
		print(1)
	elif elements[1] % 2 == 0:
		print(1)
		print(2)
	else:
		print(2)
		print('1 2')


n = int(input())
answer = []
for i in range(n):
	not_odd = []
	k = int(input())
	array = input().split()
	for i in range(k):
		if int(array[i]) % 2 == 0:
			answer.append(1)
			answer.append(i + 1)
			break
		if len(array) == 1:
			answer.append(-1)
			break
		if len(not_odd) < 1:
			not_odd.append(str(i + 1))
		else:
			not_odd.append(str(i + 1))
			break
	if len(not_odd) == 2:
		answer.append(2)
		answer.append(' '.join(not_odd))
print(*answer, sep='\n')


for _ in range(int(input())):
	n = int(input())
	lst = list(map(int, input().split()))
	sum1 = 0
	found = 0
	for i in range(n):
		sum1 += lst[i]
		if lst[i] % 2 == 0:
			print('1')
			print(i + 1)
			found = 1
			break
		elif sum1 % 2 == 0:
			print(i + 1)
			for k in range(i + 1):
				print(k + 1, end=' ')
			print()
			found = 1
			break
	if found == 0:
		print('-1')


t = int(input())
for i in range(t):
	n = int(input())
	l = list(map(int, input().split()))
	try:
		if l[0] % 2 == 0:
			print(1)
			print(1)
		elif l[1] % 2 == 0:
			print(1)
			print(2)
		elif l[0] % 2 != 0 and l[1] % 2 != 0:
			print(2)
			print(1, end=' ')
			print(2)
	except Exception as e:
		print(-1)


t = int(input())
for k in range(t):
	flag = 0
	n = input()
	n = int(n)
	a = list(map(int, input().strip().split()))[:n]
	sum = 0
	for i in a:
		if i % 2 == 0:
			print(1)
			print(a.index(i) + 1)
			flag = 1
			break
	if flag == 1:
		continue
	if n == 1:
		print(-1)
	else:
		print(2)
		print('1 2')


case = int(input())
for i in range(case):
	n = int(input())
	ll = list(map(int, input().split()))
	s = []
	for t in ll:
		if t % 2 == 0:
			print(1)
			print(ll.index(t) + 1)
			break
		elif t % 2 != 0:
			s.append(t)
			if len(s) == 2 and s[0] == s[1]:
				k = ll.index(s[0])
				ass = ll[k + 1:].index(s[0])
				print(2)
				print(k + 1, k + ass + 2)
				break
			elif len(s) == 2:
				print(2)
				print(ll.index(s[0]) + 1, ll.index(s[1]) + 1)
				break
	else:
		print(-1)


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	found = []
	for i in range(len(a)):
		if a[i] % 2 == 0:
			found.append(str(i + 1))
			break
		elif i > 0:
			found.append('1')
			found.append(str(i + 1))
			break
	if len(found) == 0:
		print(-1)
	else:
		print(len(found))
		print(' '.join(found))


def solve(a):
	for (idx, aa) in enumerate(a):
		if aa % 2 == 0:
			return [idx]
	if len(a) > 1:
		return [0, 1]
	return []
t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	idxs = solve(a)
	if idxs:
		print(len(idxs))
		print(' '.join([str(x + 1) for x in idxs]))
	else:
		print(-1)


import sys

def evenSubset(a):
	evenPos = -1
	oddPos = []
	for (idx, ele) in enumerate(a):
		if ele % 2 == 0:
			print(1)
			print(idx + 1)
			return
		else:
			oddPos.append(idx + 1)
			if len(oddPos) == 2:
				print(2)
				print(*oddPos)
				return
	print(-1)
t = int(sys.stdin.readline())
for i in range(t):
	n = int(sys.stdin.readline())
	a = list(map(int, sys.stdin.readline().split()))
	evenSubset(a)


n = int(input())
while n != 0:
	z = int(input())
	arr = [int(a) for a in input().split(' ')]
	found = False
	for i in range(0, z):
		if arr[i] % 2 == 0:
			print(1)
			print(i + 1)
			found = True
			break
	if not found:
		if z > 1:
			print('2')
			print('1 2')
		else:
			print('-1')
	n = n - 1


t = int(input())
for _ in range(t):
	n = int(input())
	arr = list(map(int, input().split()))
	count_odd = 0
	count_even = 0
	for i in range(n):
		if arr[i] % 2 == 0:
			count_even += 1
		else:
			count_odd += 1
	if count_even <= 0 and count_odd == 1:
		print(-1)
	elif count_even > 0:
		print(1)
		for i in range(n):
			if arr[i] % 2 == 0:
				print(i + 1)
				break
	elif count_odd > 1:
		print(2)
		flag = 0
		res = []
		for i in range(n):
			if arr[i] % 2 != 0 and flag < 2:
				res.append(i + 1)
				flag += 1
			if flag >= 2:
				break
		print(*res)


t = int(input())
while t > 0:
	n = int(input())
	array = list(map(int, input().split()))
	if n == 1:
		if array[0] & 1:
			print(-1)
		else:
			print('1\n1')
	elif array[0] & 1 and array[1] & 1:
		print('2\n1 2\n')
	else:
		print(1)
		if array[0] & 1:
			print(2)
		else:
			print(1)
	t -= 1


t = int(input())
for _ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	even_id = None
	for i in range(n):
		if a[i] % 2 == 0:
			even_id = i + 1
			break
	if even_id is None:
		if n >= 2:
			print(2)
			print(1, 2)
		else:
			print(-1)
	else:
		print(1)
		print(even_id)


import math, collections, sys
input = sys.stdin.readline

def solve():
	n = int(input())
	a = list(map(int, input().split()))
	if len(a) == 1:
		if a[0] % 2:
			print(-1)
		else:
			print(1)
			print(1)
	else:
		flag = -1
		for i in range(n):
			if a[i] % 2 == 0:
				flag = i + 1
		if flag != -1:
			print(1)
			print(flag)
		else:
			print(2)
			print(1, 2)
for _ in range(int(input())):
	solve()


import sys
input = sys.stdin.readline

def inp():
	return int(input())

def inlt():
	return list(map(int, input().split()))

def insr():
	s = input()
	return list(s[:len(s) - 1])

def invr():
	return map(int, input().split())

def solve(a):
	if len(a) == 1:
		if a[0] % 2 == 0:
			return ['1']
		else:
			return []
	elif a[0] % 2 == 0:
		return ['1']
	elif a[1] % 2 == 0:
		return ['2']
	else:
		return ['1', '2']

def output():
	t = inp()
	for i in range(t):
		n = inp()
		a = inlt()
		tab = solve(a)
		if tab == []:
			print(-1)
		else:
			print(len(tab))
			print(' '.join(tab))
output()


for _ in range(int(input())):
	n = int(input())
	arr = list(map(int, input().split()))
	even = False
	for i in range(n):
		if arr[i] % 2 == 0:
			even = True
			ev_value = i + 1
			break
	if even:
		print(1)
		print(ev_value)
	elif n >= 2:
		print(2)
		print(1, 2)
	else:
		print(-1)


n = int(input())
for i in range(n):
	a = int(input())
	A = input().split()
	t = 0
	E = False
	for j in range(a):
		A[j] = int(A[j])
		if A[j] % 2 == 0:
			print('1\n' + str(j + 1))
			E = True
			break
	if E:
		continue
	if a == 1:
		print(-1)
	else:
		print('2\n1 2')


for _ in range(int(input())):
	n = int(input())
	a = input().split(' ')
	odds = []
	done = 0
	for i in range(n):
		a[i] = int(a[i])
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			done = 1
			break
		else:
			odds.append(i + 1)
			if len(odds) % 2 == 0:
				print(2)
				print(odds[0], odds[1])
				done = 1
				break
	if done == 0:
		print(-1)


for i in range(int(input())):
	n = int(input())
	a = [int(s) for s in input().split()]
	odd = -1
	for i in range(len(a)):
		if a[i] % 2 == 0:
			print(1)
			print(i + 1)
			break
		elif odd == -1:
			odd = i
		else:
			print(2)
			print(odd + 1, i + 1)
			break
	else:
		print(-1)


from sys import stdin, stdout, exit as sys_ret
(f_input, f_print, f_flush) = (stdin.readline, stdout.write, stdout.flush)
for _ in range(int(f_input())):
	amount = int(f_input())
	numbers = [int(_) for _ in f_input().split()]
	if numbers[0] % 2 == 0:
		f_print('1\n1\n')
		continue
	if amount == 1:
		f_print('-1\n')
		continue
	if numbers[1] % 2 == 0:
		f_print('1\n2\n')
	else:
		f_print('2\n1 2\n')


t = int(input())
answ = []
for i in range(t):
	n = int(input())
	arr = input()
	arr2 = arr.split(' ')
	arr = []
	for j in arr2:
		arr.append(int(j))
	if (len(arr) == 1) & (arr[0] % 2 == 1):
		answ.append(-1)
	else:
		a = 'a'
		for j in range(len(arr)):
			if arr[j] % 2 == 0:
				answ.append(1)
				answ.append(j + 1)
				a = arr[j]
				break
		if a == 'a':
			answ.append(2)
			answ.append('1 2')
for i in answ:
	print(i)


def func(l: list, i=0, prev=-1):
	if i == len(l):
		return -1
	if l[i] % 2 == 0:
		return [i + 1]
	elif prev == -1:
		return func(l, i + 1, i)
	else:
		return [prev + 1, i + 1]
n = int(input())
B = []
for _ in range(n):
	t = int(input())
	l = list(map(int, input().strip().split()))
	B.append(l)
for l in B:
	r = func(l)
	if r == -1:
		print(-1)
	else:
		print(len(r))
		print(' '.join(map(str, r)))


import sys

def perm(idx=0, s=0):
	if s > i:
		return False
	if s == i:
		return True
	if idx >= N:
		return False
	if perm(idx + 1, s):
		return True
	arr.append(idx + 1)
	if perm(idx + 1, s + nl[idx]):
		return True
	arr.pop()
input = sys.stdin.readline
T = int(input())
while T:
	T -= 1
	N = int(input())
	a = 1
	nl = list(map(int, input().split()))
	for b in nl:
		a |= a << b
	arr = []
	for i in range(2, len(bin(a)) - 2, 2):
		if a & 1 << i:
			perm()
			break
	if arr:
		print(len(arr))
		print(' '.join(map(str, arr)))
	else:
		print(-1)


t = int(input())
while t:
	t = t - 1
	n = int(input())
	a_i = [int(x) for x in input().split()]
	if n == 1 and a_i[0] % 2 == 1:
		print('-1')
	elif n == 1 and a_i[0] % 2 == 0:
		print('1')
		print('1')
	elif a_i[0] % 2 == 0 or a_i[1] % 2 == 0:
		print('1')
		if a_i[0] % 2 == 0:
			print('1')
		else:
			print('2')
	else:
		print('2')
		print('1 2')


t = int(input())
for t_ in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if len(a) == 1 and a[0] % 2 == 1:
		print(-1)
	else:
		(even, odd) = ([], [])
		for i in range(len(a)):
			if a[i] % 2 == 1:
				odd.append(i + 1)
				if len(odd) > 1:
					print(2)
					print(' '.join((str(j) for j in odd)))
					break
			else:
				print(1)
				print(i + 1)
				break


t = int(input())
for x in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if a[0] % 2 == 0:
		print(1, 1, sep='\n')
	elif len(a) >= 2:
		if a[1] % 2 == 0:
			print(1, 2, sep='\n')
		else:
			print(2)
			print(1, 2)
	else:
		print(-1)


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	if n == 1:
		if a[0] % 2 == 0:
			print(1)
			print(1)
		else:
			print(-1)
	else:
		b = []
		for i in range(n):
			b.append(a[i] % 2)
		z = b.count(0)
		if z != 0:
			print(1)
			print(b.index(0) + 1)
		else:
			i = 0
			ans = []
			while i < n and len(ans) < 2:
				if b[i] == 1:
					ans.append(i + 1)
				i += 1
			if len(ans) < 2:
				print(-1)
			else:
				print(2)
				print(*ans)