#include <iostream>
#include <vector>
#include <utility>
#include <stack>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
if (!(cin >> n >> m)) return 0;
vector<int> s(n+1);
for (int i = 1; i <= n; ++i) cin >> s[i];
vector<vector<pair<int,int>>> adj(n+1);
vector<int> xu(m+1), yu(m+1);
for (int i = 1; i <= m; ++i) {
int x, y; cin >> x >> y;
xu[i] = x; yu[i] = y;
adj[x].push_back({y, i});
adj[y].push_back({x, i});
}
vector<int> d(n+1);
for (int i = 1; i <= n; ++i) d[i] = 1 - s[i];
vector<int> vis(n+1, 0), parent(n+1, 0), parentEdge(n+1, 0);
vector<int> ans; ans.reserve(m);
for (int i = 1; i <= n; ++i) {
if (vis[i]) continue;
vector<int> st;
vector<int> order;
st.push_back(i);
vis[i] = 1;
parent[i] = 0;
parentEdge[i] = 0;
while (!st.empty()) {
int u = st.back();
st.pop_back();
order.push_back(u);
for (auto pr : adj[u]) {
int v = pr.first, eid = pr.second;
if (!vis[v]) {
vis[v] = 1;
parent[v] = u;
parentEdge[v] = eid;
st.push_back(v);
}
}
}
int sumd = 0;
for (int v : order) sumd += d[v];
if (sumd % 2 == 1) {
cout << -1 << '\n';
return 0;
}
for (int idx = (int)order.size() - 1; idx >= 0; --idx) {
int u = order[idx];
if (parent[u] == 0) continue;
if (d[u] == 1) {
ans.push_back(parentEdge[u]);
d[u] ^= 1;
d[parent[u]] ^= 1;
}
}
}
cout << ans.size() << '\n';
for (size_t i = 0; i < ans.size(); ++i) {
if (i) cout << ' ';
cout << ans[i];
}
if (!ans.empty()) cout << '\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHN0YWNrPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgbiwgbTsKICAgIGlmICghKGNpbiA+PiBuID4+IG0pKSByZXR1cm4gMDsKICAgIHZlY3RvcjxpbnQ+IHMobisxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgY2luID4+IHNbaV07CiAgICB2ZWN0b3I8dmVjdG9yPHBhaXI8aW50LGludD4+PiBhZGoobisxKTsKICAgIHZlY3RvcjxpbnQ+IHh1KG0rMSksIHl1KG0rMSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtOyArK2kpIHsKICAgICAgICBpbnQgeCwgeTsgY2luID4+IHggPj4geTsKICAgICAgICB4dVtpXSA9IHg7IHl1W2ldID0geTsKICAgICAgICBhZGpbeF0ucHVzaF9iYWNrKHt5LCBpfSk7CiAgICAgICAgYWRqW3ldLnB1c2hfYmFjayh7eCwgaX0pOwogICAgfQoKICAgIHZlY3RvcjxpbnQ+IGQobisxKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgZFtpXSA9IDEgLSBzW2ldOwoKICAgIHZlY3RvcjxpbnQ+IHZpcyhuKzEsIDApLCBwYXJlbnQobisxLCAwKSwgcGFyZW50RWRnZShuKzEsIDApOwogICAgdmVjdG9yPGludD4gYW5zOyBhbnMucmVzZXJ2ZShtKTsKCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICBpZiAodmlzW2ldKSBjb250aW51ZTsKICAgICAgICB2ZWN0b3I8aW50PiBzdDsKICAgICAgICB2ZWN0b3I8aW50PiBvcmRlcjsKICAgICAgICBzdC5wdXNoX2JhY2soaSk7CiAgICAgICAgdmlzW2ldID0gMTsKICAgICAgICBwYXJlbnRbaV0gPSAwOwogICAgICAgIHBhcmVudEVkZ2VbaV0gPSAwOwogICAgICAgIHdoaWxlICghc3QuZW1wdHkoKSkgewogICAgICAgICAgICBpbnQgdSA9IHN0LmJhY2soKTsKICAgICAgICAgICAgc3QucG9wX2JhY2soKTsKICAgICAgICAgICAgb3JkZXIucHVzaF9iYWNrKHUpOwogICAgICAgICAgICBmb3IgKGF1dG8gcHIgOiBhZGpbdV0pIHsKICAgICAgICAgICAgICAgIGludCB2ID0gcHIuZmlyc3QsIGVpZCA9IHByLnNlY29uZDsKICAgICAgICAgICAgICAgIGlmICghdmlzW3ZdKSB7CiAgICAgICAgICAgICAgICAgICAgdmlzW3ZdID0gMTsKICAgICAgICAgICAgICAgICAgICBwYXJlbnRbdl0gPSB1OwogICAgICAgICAgICAgICAgICAgIHBhcmVudEVkZ2Vbdl0gPSBlaWQ7CiAgICAgICAgICAgICAgICAgICAgc3QucHVzaF9iYWNrKHYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGludCBzdW1kID0gMDsKICAgICAgICBmb3IgKGludCB2IDogb3JkZXIpIHN1bWQgKz0gZFt2XTsKICAgICAgICBpZiAoc3VtZCAlIDIgPT0gMSkgewogICAgICAgICAgICBjb3V0IDw8IC0xIDw8ICdcbic7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICBmb3IgKGludCBpZHggPSAoaW50KW9yZGVyLnNpemUoKSAtIDE7IGlkeCA+PSAwOyAtLWlkeCkgewogICAgICAgICAgICBpbnQgdSA9IG9yZGVyW2lkeF07CiAgICAgICAgICAgIGlmIChwYXJlbnRbdV0gPT0gMCkgY29udGludWU7CiAgICAgICAgICAgIGlmIChkW3VdID09IDEpIHsKICAgICAgICAgICAgICAgIGFucy5wdXNoX2JhY2socGFyZW50RWRnZVt1XSk7CiAgICAgICAgICAgICAgICBkW3VdIF49IDE7CiAgICAgICAgICAgICAgICBkW3BhcmVudFt1XV0gXj0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGFucy5zaXplKCkgPDwgJ1xuJzsKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5zLnNpemUoKTsgKytpKSB7CiAgICAgICAgaWYgKGkpIGNvdXQgPDwgJyAnOwogICAgICAgIGNvdXQgPDwgYW5zW2ldOwogICAgfQogICAgaWYgKCFhbnMuZW1wdHkoKSkgY291dCA8PCAnXG4nOwogICAgcmV0dXJuIDA7Cn0K