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

Solutions:
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(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)


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()


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)


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')


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)


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())
	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)


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())
	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')


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)


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())
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


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 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)


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)


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 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)


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


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


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)


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)


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])


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


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)


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()


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()


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)


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')


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 = 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)


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)


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)


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)))


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()


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)


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()


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


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)


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()


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)


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)


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)


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)


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')


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)


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)


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())
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


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')


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)


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')


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)


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


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())
	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)


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())
	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)


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')


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))


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)


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(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()


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)


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)


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)


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())):
	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')


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)


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)


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)


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)


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)


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)


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


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())
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])


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
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)


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())
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')


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)


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()


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


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)


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')


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)


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()


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 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)


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


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)


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)


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)


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)


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)


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)


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)


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)


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


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


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()


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()


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')


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)


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())
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)


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)


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)


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)


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 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().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


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()


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)


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)


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])


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))


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())
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())
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)


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')


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)


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)


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)


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])


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()


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())
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)


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 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')


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)


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)


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


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)


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 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())
	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')


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)


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')


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()


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)


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])


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)


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


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)


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


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())
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)


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


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)


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')


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)


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


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')


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)


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)


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()


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())
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)


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)


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)


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


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)


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)


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)


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


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()


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)


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))


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)


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')


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())
	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())
	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')


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())
	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
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


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()


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)


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)


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)


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)


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')


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())
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)


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')


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)


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))


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)


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())
	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')


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)))


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)