#include <bits/stdc++.h>

using namespace std;

//#pragma GCC optimize("Ofast")
//#pragma GCC target ("avx2")
//#pragma GCC optimization ("O3")
//#pragma GCC optimization ("unroll-loops")
//#pragma comment(linker, "/stack:200000000")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;

bool prov(vector<int> &a){
    vector<int> dp(2e5+2001,0);
//    map<int,int> m;
    dp[0]=1;
    int sm=0;
    for(int i=0;i<a.size();i++){
        sm+=a[i];
    }
    if(sm%2==1){
        return true;
    }
    for(int i=0;i<a.size();i++){
        for(int j=2e5;j>=0;j--){
            dp[j+a[i]]+=dp[j];
        }
    }

    if(dp[sm/2]==0){
        return true;
    }

    return false;
}

signed main() {
    ios::ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n;
    cin>>n;
    vector<int> a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
    }

    if(prov(a)){
        cout<<"0";
        return 0;
    }

    while(true){
        int sm=0;
        int id=-1;
        for(int i=0;i<n;i++){
            sm+=a[i];
            if(a[i]%2==1){
                id=i;
            }
        }

//        if(sm%2==1){
//            cout<<0;
//            return 0;
//        }else{
            if(id!=-1){
                cout<<1<<endl;
                cout<<id+1;
                break;
            }else{
                for(int i=0;i<n;i++){
                    a[i]/=2;
                }
            }
//        }
    }

//    for(int i=0;i<n;i++){
//        int v=a[i];
//        a.erase(a.begin()+i);
//        if(prov(a)){
//            cout<<1<<endl;
//            cout<<i+1;
//            break;
//        }
//        a.insert(a.begin()+i,v);
//    }

}