#include<bits/stdc++.h>
#define rep(i,a,b) for(long long i=a;i<b;i++)
#define pb push_back
#define f first
#define s second
#define is insert
#define vector_int vector<int>
#define ll long long
#define pqi priority_queue<int>
#define all(x) x.begin(),x.end()
#define mem(x,y) memset(x,y,sizeof(x))
#define sz(x) (int)x.size()
#define pii pair<int,int>
#define pll pair<ll,ll>
#define INF 1e9
#define INFL 1e18
#define mod 1000000007
#define fast ios::sync_with_stdio(false);cin.tie(0);
using namespace std;

int equalPartition(int n, vector<int> arr)
    {
        int sum = 0;
    int i, j;
 
    // Calculate sum of all elements
    for (i = 0; i < n; i++)
        sum += arr[i];
 
    if (sum % 2 != 0)
        return false;
 
    bool part[sum / 2 + 1][n + 1];
 
    // initialize top row as true
    for (i = 0; i <= n; i++)
        part[0][i] = true;
 
    // initialize leftmost column,
    // except part[0][0], as 0
    for (i = 1; i <= sum / 2; i++)
        part[i][0] = false;
 
    // Fill the partition table in bottom up manner
    for (i = 1; i <= sum / 2; i++) {
        for (j = 1; j <= n; j++) {
            part[i][j] = part[i][j - 1];
            if (i >= arr[j - 1])
                part[i][j] = part[i][j]
                             || part[i - arr[j - 1]][j - 1];
        }
    }
 
    /* // uncomment this part to print table
    for (i = 0; i <= sum/2; i++)
    {
    for (j = 0; j <= n; j++)
        cout<<part[i][j];
    cout<<endl;
    } */
 
    return part[sum / 2][n];
    }

void solve(){
    ll n=0;cin>>n;
    vector<int> arr;
    for(int i=0;i<n;i++) {
        int x;
        cin>>x;
        arr.pb(x);
    }
    if(equalPartition( n,arr)==0) cout<<0<<endl;
    else {
        for(int i=0;i<n;i++){
            int x=arr[i];
            arr[i]=0;
            if(equalPartition(n,arr)==0) {
                cout<<1<<endl<<i+1<<endl;
                break;
            }
            else{
                arr[i]=x;
            }
        }
    }
}
 
int main() {
    
        solve();
    
    return 0;
}