#include <bits/stdc++.h>
using namespace std;

//
// My personnal C++ template
//

typedef int8_t i8;
typedef uint8_t u8;
typedef int16_t i16;
typedef uint16_t u16;
typedef int32_t i32;
typedef uint32_t u32;
typedef int64_t i64;
typedef uint64_t u64;

typedef i64 ll;
typedef u64 ull;
typedef long double ld;

typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<pii> vii;
typedef vector<bool> vb;
typedef map<int, int> mii;

#define fi first
#define se second
#define mp make_pair
#define mt make_tuple
#define pb push_back

#define IO                                                                     \
    do {                                                                       \
        ios_base::sync_with_stdio(false);                                      \
        cin.tie(NULL);                                                         \
        cout.tie(NULL);                                                        \
    } while (false)

#define FOR(a, b, c) for (int a = (b); a < (c); ++a)
#define FORN(a, b, c) for (int a = (b); a <= (c); ++a)
#define FORD(a, b, c) for (int a = (b); a >= (c); --a)
#define FOREACH(a, b) for (auto &a : (b))
#define REP(i, n) FOR(i, 0, n)
#define REPN(i, n) FORN(i, 1, n)
#define REPD(i, n) FORD(i, n, 0)
#define MAX(a, b) a = max(a, b)
#define MIN(a, b) a = min(a, b)

int arr[100], n;
bitset<200001> b;

bool partition(int sum) {
    if (sum % 2 == 1) {
        return false;
    }

    b.reset();
    b[0] = true;
    REP(i, n) {
        b |= b << arr[i];
    }

    return b[sum / 2];
}

int main() {
    IO;

    cin >> n;
    int minindex = 0;
    int sum = 0;
    REP(i, n) {
        cin >> arr[i];
        sum += arr[i];
        if (__builtin_ctz(arr[minindex]) > __builtin_ctz(arr[i])) {
            minindex = i;
        }
    }

    if (partition(sum)) {
        cout << 1 << endl << minindex + 1 << endl;
    } else {
        cout << 0 << endl;
    }

    return 0;
}
