#include <bits/stdc++.h>
using namespace std;
const int maxn = 5005;
void read(int &x) {
  int f = 1;
  x = 0;
  char s = getchar();
  while (s < '0' || s > '9') {
    if (s == '-') f = -1;
    s = getchar();
  }
  while (s >= '0' && s <= '9') {
    x = x * 10 + s - '0';
    s = getchar();
  }
  x *= f;
}
string s1, s2;
int n, cnt1, cnt2, cnt3, cnt4;
vector<int> e1, e2, e3, e4;
void exec(int a, int b, int c, int d) {
  vector<int> e;
  for (int i = 0; i < a; i++) {
    e.push_back(e1[i]);
  }
  for (int i = 0; i < b; i++) {
    e.push_back(e2[i]);
  }
  for (int i = 0; i < c; i++) {
    e.push_back(e3[i]);
  }
  for (int i = 0; i < d; i++) {
    e.push_back(e4[i]);
  }
  sort(e.begin(), e.end());
  for (auto i : e) cout << i + 1 << ' ';
}
int main() {
  read(n);
  cin >> s1 >> s2;
  for (int i = 0; i < n; i++) {
    if (s1[i] == '1' && s2[i] == '1')
      cnt1++, e1.push_back(i);
    else if (s1[i] == '1')
      cnt2++, e2.push_back(i);
    else if (s2[i] == '1')
      cnt3++, e3.push_back(i);
    else
      cnt4++, e4.push_back(i);
  }
  for (int b = 0; b <= n; b++) {
    for (int c = 0; c <= n; c++) {
      int k = cnt1 + cnt3 - b - c;
      if (k % 2 == 0) {
        int a = k / 2;
        int d = n / 2 - a - b - c;
        if (a >= 0 && b >= 0 && c >= 0 && d >= 0 && a <= cnt1 && b <= cnt2 &&
            c <= cnt3 && d <= cnt4) {
          exec(a, b, c, d);
          return 0;
        }
      }
    }
  }
  cout << -1 << endl;
  return 0;
}
