//Code by do_while_true
#include<iostream>
#include<cstdio>
template <typename T> T Max(T x, T y) { return x > y ? x : y; }
template <typename T> T Min(T x, T y) { return x < y ? x : y; }
template <typename T>
T& read(T& r) {
	r = 0; bool w = 0; char ch = getchar();
	while(ch < '0' || ch > '9') w = ch == '-' ? 1 : 0, ch = getchar();
	while(ch >= '0' && ch <= '9') r = r * 10 + (ch ^ 48), ch = getchar();
	return r = w ? -r : r;
}
const int N = 110;
int gcd(int a, int b) { return !b ? a : gcd(b, a%b); }
int n, sum, a[N], GCD;
bool f[N * 2000];
signed main() {
	read(n);
	for(int i = 1; i <= n; ++i) {
		read(a[i]);
		sum += a[i];
		GCD = i==1 ? a[1] : gcd(GCD, a[i]);
	} f[0] = 1;
	for(int i = 1; i <= n; ++i)
		for(int j = sum; j >= a[i]; --j)
			f[j] = f[j-a[i]] ? 1 : f[j];
	if(!f[sum/2] || sum&1) return puts("0"), 0;
	for(int i = 1; i <= n; ++i)
		if((a[i] / GCD) & 1) {
			printf("1\n%d\n", i);
			break;
		}
	return 0;
}