#include <bits/stdc++.h>
using namespace std;
long long const N = 5010;
long long const MOD = 1e9 + 7;
long long num[N];
map<pair<char, char>, long long> smap, kmap;
int32_t main() {
  long long n;
  cin >> n;
  string c, a;
  cin >> c >> a;
  for (long long i = 0; i < n; i++) {
    char t1 = c[i];
    char t2 = a[i];
    smap[{t1, t2}]++;
  }
  long long first = smap[{'1', '0'}];
  long long second = smap[{'0', '1'}];
  long long zero = smap[{'0', '0'}];
  long long one = smap[{'1', '1'}];
  bool flag = false;
  for (long long i = 0; i <= first; i++) {
    for (long long j = 0; j <= second; j++) {
      long long fone = i;
      long long fzero = second - j;
      long long sone = j;
      if (fone <= sone) {
        long long diff = sone - fone;
        if (one >= diff && (one - diff) % 2 == 0) {
          fone = sone + (one - diff) / 2;
          long long baki = (n / 2) - fone - fzero;
          if (baki >= 0 && (zero - baki) >= 0) {
            kmap[{'1', '0'}] = i;
            kmap[{'1', '1'}] = diff + (one - diff) / 2;
            kmap[{'0', '1'}] = fzero;
            kmap[{'0', '0'}] = baki;
            flag = true;
          }
        }
      } else {
        long long diff = fone - sone;
        if (one >= diff && (one - diff) % 2 == 0) {
          fone += (one - diff) / 2;
          long long baki = (n / 2) - fone - fzero;
          if (baki >= 0 && (zero - baki) >= 0) {
            kmap[{'1', '0'}] = i;
            kmap[{'1', '1'}] = (one - diff) / 2;
            kmap[{'0', '1'}] = fzero;
            kmap[{'0', '0'}] = baki;
            flag = true;
          }
        }
      }
      if (flag) {
        break;
      }
    }
  }
  if (flag) {
    for (long long i = 0; i < n; i++) {
      char t1 = c[i];
      char t2 = a[i];
      if (kmap[{t1, t2}] > 0) {
        cout << i + 1 << " ";
        kmap[{t1, t2}]--;
      }
    }
  } else
    cout << -1 << endl;
}
