#include <bits/stdc++.h>
using namespace std;
bool flg;
int n, m, ans, A, B, C, D, x, y, z, r, a[5005], b[5005];
inline char nc() {
  static char buf[100000], *L = buf, *R = buf;
  return L == R && (R = (L = buf) + fread(buf, 1, 100000, stdin), L == R)
             ? EOF
             : *L++;
}
inline int read() {
  int ret = 0, f = 1;
  char ch = nc();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = nc();
  }
  while (ch >= '0' && ch <= '9') ret = ret * 10 + ch - '0', ch = nc();
  return ret * f;
}
inline int abs_(int x) { return x > 0 ? x : -x; }
int main() {
  n = read();
  m = n / 2;
  for (int i = 1; i <= n; i++) {
    char ch = nc();
    while (ch != '0' && ch != '1') ch = nc();
    a[i] = ch - '0';
  }
  for (int i = 1; i <= n; i++) {
    char ch = nc();
    while (ch != '0' && ch != '1') ch = nc();
    b[i] = ch - '0';
  }
  for (int i = 1; i <= n; i++) {
    if (a[i] && !b[i]) A++;
    if (!a[i] && b[i]) B++;
    if (a[i] && b[i]) C++;
  }
  if (A > m) {
    printf("-1");
    return 0;
  }
  if (B > m) {
    printf("-1");
    return 0;
  }
  for (int i = 0; i <= A; i++) {
    for (int j = 0; j <= B; j++) {
      int t = abs_(i - j);
      if (C >= t && ((C - t) & 1) == 0) {
        x = i, y = B - j;
        if (i < j)
          z = t + (C - t) / 2;
        else
          z = (C - t) / 2;
        if (x + y + z <= m && A - x + B - y + C - z <= m) {
          flg = 1;
          break;
        }
      }
      if (flg) break;
    }
    if (flg) break;
  }
  if (!flg) {
    printf("-1");
    return 0;
  };
  r = m - x - y - z;
  int lst = x + y + z + r;
  for (int i = 1; i <= n; i++) {
    if (x && a[i] && !b[i]) x--, printf("%d", i);
    if (y && !a[i] && b[i]) y--, printf("%d", i);
    if (z && a[i] && b[i]) z--, printf("%d", i);
    if (r && !a[i] && !b[i]) r--, printf("%d", i);
    if (x + y + z + r != lst) {
      if (x + y + z + r == 0) {
        printf("\n");
        break;
      } else
        printf(" ");
      lst = x + y + z + r;
    }
  }
  return 0;
}
