#include <bits/stdc++.h>
using namespace std;
int n;
const int MAXN = 5005;
char cc[MAXN], ca[MAXN];
int c[MAXN], a[MAXN];
int tot[4];
int first[4];
void conv() {
  memset(c, 0, sizeof(c));
  memset(a, 0, sizeof(a));
  for (int i = 0; i < n; i++) {
    if (cc[i] == '1') c[i] = 1;
    if (ca[i] == '1') a[i] = 1;
  }
}
void solve() {
  conv();
  memset(tot, 0, sizeof(tot));
  memset(first, 0, sizeof(first));
  for (int i = 0; i < n; i++) {
    if (!c[i] && !a[i])
      tot[0]++;
    else if (c[i] && !a[i])
      tot[1]++;
    else if (!c[i] && a[i])
      tot[2]++;
    else
      tot[3]++;
  }
  first[0] = min(min(tot[0], n / 2 - tot[2]), (tot[0] + tot[1]) / 2);
  first[1] = min(tot[1], max(0, tot[0] + tot[1] - 2 * first[0] - tot[2]));
  first[2] = tot[0] + tot[1] - 2 * first[0] - first[1];
  first[3] = n / 2 + first[0] - tot[0] - tot[1];
  int temp[4];
  for (int i = 0; i < 4; i++) temp[i] = first[i];
  int counter = 0;
  for (int i = 0; i < n; i++) {
    if (first[i] < 0) {
      printf("-1");
      return;
    }
  }
  for (int i = 0; i < n; i++) {
    if (!c[i] && !a[i] && temp[0] > 0) {
      temp[0]--;
      counter++;
    } else if (c[i] && !a[i] && temp[1] > 0) {
      temp[1]--;
      counter++;
    } else if (!c[i] && a[i] && temp[2] > 0) {
      temp[2]--;
      counter++;
    } else if (c[i] && a[i] && temp[3] > 0) {
      temp[3]--;
      counter++;
    }
  }
  if (counter < n / 2) {
    printf("-1");
    return;
  }
  for (int i = 0; i < n; i++) {
    if (!c[i] && !a[i] && first[0]) {
      printf("%d ", i + 1);
      first[0]--;
    } else if (c[i] && !a[i] && first[1]) {
      printf("%d ", i + 1);
      first[1]--;
    } else if (!c[i] && a[i] && first[2]) {
      printf("%d ", i + 1);
      first[2]--;
    } else if (c[i] && a[i] && first[3]) {
      printf("%d ", i + 1);
      first[3]--;
    }
  }
  return;
}
int main() {
  cin >> n;
  scanf("%s%s", cc, ca);
  solve();
}
