3 2
1 0 1
1 2
2 3
 10 10
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
6 7
8 3
6 4
4 2
9 2
5 10
9 8
10 7
5 1
6 2

2
1
2
 0

#include <bits/stdc++.h>
using namespace std;
const int maxn = 300005, inf = 0x3f3f3f3f;
const long long llinf = 0x3f3f3f3f3f3f3f3f;
const long double pi = acos(-1.0L);
int d[maxn], du[maxn], x[maxn], y[maxn];
bool f[maxn];
int main() {
  int n, i, j, m;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; i++) scanf("%d", &d[i]);
  memset(du, 0, sizeof(du));
  for (i = 1; i <= n; i++) {
    if (d[i] == -1) {
      printf("0");
      return 0;
    }
  }
  for (i = 1; i <= m; i++) {
    scanf("%d%d", &x[i], &y[i]);
    du[x[i]]++;
    du[y[i]]++;
  }
  memset(f, 0, sizeof(f));
  for (i = 1; i <= m; i++) {
    if (du[x[i]] % 2 == 1 && du[y[i]] % 2 == 1 && d[x[i]] == 0 &&
        d[y[i]] == 0) {
      f[i] = 1, du[x[i]]--, du[y[i]]--;
    } else if (du[x[i]] % 2 == 0 && du[y[i]] % 2 == 0 && d[x[i]] == 1 &&
               d[y[i]] == 1) {
      f[i] = 1, du[x[i]]--, du[y[i]]--;
    } else if (du[x[i]] % 2 == 1 && du[y[i]] % 2 == 0 && d[x[i]] == 0 &&
               d[y[i]] == 1) {
      f[i] = 1, du[x[i]]--, du[y[i]]--;
    } else if (du[x[i]] % 2 == 0 && du[y[i]] % 2 == 1 && d[x[i]] == 1 &&
               d[y[i]] == 0) {
      f[i] = 1, du[x[i]]--, du[y[i]]--;
    }
  }
  for (i = 1; i <= m; i++) {
    if (f[i]) continue;
    if (du[x[i]] % 2 == 0 && d[y[i]] == -1 && d[x[i]] == 1)
      f[i] = 1, du[x[i]]--, du[y[i]]--;
    else if (du[x[i]] % 2 == 1 && d[y[i]] == -1 && d[x[i]] == 0)
      f[i] = 1, du[x[i]]--, du[y[i]]--;
    else if (d[x[i]] == -1 && du[y[i]] % 2 == 1 && d[y[i]] == 0)
      f[i] = 1, du[x[i]]--, du[y[i]]--;
    else if (d[x[i]] == -1 && du[y[i]] % 2 == 0 && d[y[i]] == 1)
      f[i] = 1, du[x[i]]--, du[y[i]]--;
  }
  for (i = 1; i <= n; i++) {
    if (d[i] == -1) continue;
    if (du[i] % 2 != d[i]) {
      printf("-1");
      return 0;
    }
  }
  int sum = 0;
  for (i = 1; i <= m; i++) {
    if (!f[i]) sum++;
  }
  printf("%d\n", sum);
  for (i = 1; i <= m; i++) {
    if (!f[i]) printf("%d\n", i);
  }
  return 0;
}
