#include<bits/stdc++.h>
#define ll long long 
#define debug(x) cout<<"#:"<<x<<endl;
using namespace std;
const int N=105;
const int inf=0x3f3f3f3f;
int n;
int a[105];
bool dp[105][1000005];
bool DP(int a[],int sum)
{
    for(int i=0; i<n+1;i++)
	{
        dp[i][0] = true;
    }
    for(int i=1;i<sum+1;i++)
	{
        dp[0][i] = false;
    }
    for(int i = 1; i < n + 1; i++){
        for(int j = 1; j < sum + 1; j++){
            if(a[i - 1] > j){
                dp[i][j]=dp[i - 1][j];
            } else {
                dp[i][j]=dp[i - 1][j] || dp[i - 1][j - a[i - 1]];
            }
        }
    }
    return dp[n][sum];
}
inline int gcd(int x,int y)
{
	return y?gcd(y,x%y):x; 
}
int main()
{
		scanf("%d",&n);
		ll sum=0;
		for(int i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
			sum+=a[i];
		}
		int flag1=0,x1=0,flag2=inf,x2=0;
		if(sum%2==1)
		{
			printf("0\n");
		}
		else
		{
			bool res=DP(a, sum/2);
			if(res==0)
			{
				printf("0\n");
			}
			else 
			{
				int kgcd=0;
				for(int i=0;i<n;i++)
				{
					if(a[i]%2!=0)
						{
							flag1=1;
							x1=i;
							break;
						}
					if(a[i]%2==0)
					{
						if(flag2>a[i])
						{
							flag2=a[i];
							x2=i;
						}
					}
					kgcd=gcd(a[i],kgcd);
				}
				if(flag1==1)
				{
					printf("1\n");
					printf("%d\n",x1+1);
				}
				else
				{
					printf("1\n");
					for(int i=0;i<n;i++)
					{
						if(a[i]/kgcd%2==1)
						{
							printf("%d\n",i+1);
							break;
						}
					}
				}
			}
		}	
 
		return 0;
}
