#include <bits/stdc++.h>
const int maxn = 5010;
char c[maxn], a[maxn];
int t[2][2];
int in() {
  int re = 0;
  char c = getchar();
  bool f = 0;
  while (c < '0' || c > '9') f |= (c == '-'), c = getchar();
  while (c >= '0' && c <= '9')
    re = (re << 1) + (re << 3) + (c ^ '0'), c = getchar();
  return f ? -re : re;
}
int main() {
  int n = in(), len;
  scanf("%s", c + 1);
  scanf("%s", a + 1);
  len = n / 2;
  for (int i = 1; i <= n; i++) {
    if (c[i] == '1' && a[i] == '1')
      ++t[1][1];
    else if (c[i] == '1' && a[i] == '0')
      ++t[1][0];
    else if (c[i] == '0' && a[i] == '1')
      ++t[0][1];
    else
      ++t[0][0];
  }
  for (int i = 0; i <= len; i++)
    for (int j = 0; j <= i; j++) {
      if (j > t[1][1]) continue;
      int k = i - j;
      if (k > t[1][0]) continue;
      int re11 = t[1][1] - j;
      if (re11 > i) continue;
      int gal = i - re11;
      if (t[0][1] >= gal) {
        int x = j, y = k, z = t[0][1] - gal;
        int re = len - i - z;
        if (re < 0 || re > t[0][0]) continue;
        for (int q = 1; q <= n; ++q) {
          if (c[q] == '1' && a[q] == '1' && x > 0) {
            printf("%d ", q);
            --x;
          }
          if (c[q] == '1' && a[q] == '0' && y > 0) {
            printf("%d ", q);
            --y;
          }
          if (c[q] == '0' && a[q] == '1' && z > 0) {
            printf("%d ", q);
            --z;
          }
          if (c[q] == '0' && a[q] == '0' && re > 0) {
            printf("%d ", q);
            --re;
          }
        }
        return 0;
      }
    }
  puts("-1");
  return 0;
}
