#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int a, b, c, d, n;
char stra[N], strb[N];
vector<int> v[4];
int main() {
  cin >> n;
  cin >> stra >> strb;
  a = b = c = d = 0;
  for (int i = 0; i < n; i++) {
    if (stra[i] == '0' && strb[i] == '0')
      a++, v[0].push_back(i + 1);
    else if (stra[i] == '1' && strb[i] == '0')
      b++, v[1].push_back(i + 1);
    else if (stra[i] == '0' && strb[i] == '1')
      c++, v[2].push_back(i + 1);
    else
      d++, v[3].push_back(i + 1);
  }
  int flag = 0;
  for (int i = 0; i <= b; i++) {
    if (i > n / 2) break;
    for (int j = 0; j <= c; j += 2) {
      if (i + j > n / 2) break;
      for (int k = 0; k <= d; k++) {
        if (i + j + k > n / 2) break;
        int x = i + k, y = c - j + d - k;
        if (x != y) continue;
        int tt = n / 2 - i - j - k;
        if (tt > a) break;
        int cnt = 0;
        for (int l = 0; l < i; l++) cout << v[1][l] << " ", cnt++;
        for (int l = 0; l < j; l++) cout << v[2][l] << " ", cnt++;
        for (int l = 0; l < k; l++) cout << v[3][l] << " ", cnt++;
        for (int l = 0; cnt < n / 2; l++) cout << v[0][l] << " ", cnt++;
        flag = 1;
        if (flag) break;
      }
      if (flag) break;
    }
    if (flag) break;
  }
  if (!flag) cout << "-1";
  cout << endl;
  return 0;
}
