#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const long long mod = 1e9 + 7;
const int inf = 1 << 30;
const int maxn = 1000500;
const double EPS = 1e-7;
int n;
char s1[maxn], s2[maxn];
int ind(pair<int, int> a) {
  if (a.first == 0 && a.second == 0)
    return 0;
  else if (a.first == 0 && a.second == 1)
    return 1;
  else if (a.first == 1 && a.second == 0)
    return 2;
  return 3;
}
vector<int> ty[4];
void solve() {
  scanf("%d", &n);
  scanf("%s %s", s1, s2);
  for (int i = 0; i < (int)(n); ++i) {
    ty[ind({s1[i] - '0', s2[i] - '0'})].push_back(i + 1);
  }
  for (int a = 0; a < (int)(ty[0].size() + 1); ++a)
    for (int b = 0; b < (int)(ty[1].size() + 1); ++b) {
      int d = ty[1].size() + ty[3].size() - b - (n / 2 - a - b);
      int c = n / 2 - a - b - d;
      if (c >= 0 && c <= ty[2].size() && d >= 0 && d <= ty[3].size()) {
        for (int i = 0; i < (int)(a); ++i) printf("%d ", ty[0][i]);
        for (int i = 0; i < (int)(b); ++i) printf("%d ", ty[1][i]);
        for (int i = 0; i < (int)(c); ++i) printf("%d ", ty[2][i]);
        for (int i = 0; i < (int)(d); ++i) printf("%d ", ty[3][i]);
        return;
      }
    }
  puts("-1");
}
int main() {
  int tc = 1;
  for (int tt = 0; tt < (int)(tc); ++tt) {
    solve();
  }
}
