func_code_string: #include <bits/stdc++.h>   using namespace std;   int res[50010], cot;   int main() {     string a, b;     int n;     cin >> n;     cin >> a;     cin >> b;     int s1, s2, s3;     s1 = s2 = s3 = 0;     int sa = 0, sb = 0;     for (int i = 0; i < n; i++) {       if (a[i] ==  1 ) sa++;       if (b[i] ==  1 ) sb++;       if (a[i] ==  1  && b[i] ==  1 )         s3++;       else if (a[i] ==  1 )         s1++;       else if (b[i] ==  1 )         s2++;     }     int ans[5];     int flag = -1, s4 = n - s1 - s2 - s3;     for (int i = 0; flag == -1 && i <= min(s3, n / 2); i++) {       int res1 = i, res2 = (s3 - i);       if (res1 + s1 < res2) continue;       if (res2 + s2 < res1) continue;       memset(ans, 0, sizeof ans);       ans[3] += res1;       int ss1 = s1, ss2 = s2;       if (res1 < res2) {         ss1 -= (res2 - res1);         ans[1] += res2 - res1;         res1 = res2;         int temp = min(ss1, ss2);         ans[1] += temp;         ss1 -= temp;         ss2 -= temp;         if (s4 >= max(ss1, ss2)) {           if (ss1) {             ans[4] += (s4 + ss1) / 2;           } else {             ans[2] += ss2;             ans[4] += (s4 - (s4 + ss2) / 2);           }           flag = 1;         }       } else {         ss2 -= (res1 - res2);         res2 = res1;         int temp = min(ss1, ss2);         ans[1] += temp;         ss1 -= temp;         ss2 -= temp;         if (s4 >= max(ss1, ss2)) {           if (ss1) {             ans[4] += (s4 + ss1) / 2;           } else {             ans[2] += ss2;             ans[4] += (s4 - (s4 + ss2) / 2);           }           flag = 1;         }       }     }     if (flag == -1)       puts( -1 );     else {       for (int i = 0; i < n; i++) {         if (a[i] ==  1  && b[i] ==  1  && ans[3]) {           res[++cot] = i + 1;           ans[3]--;           continue;         }         if (a[i] ==  1  && b[i] ==  0  && ans[1]) {           res[++cot] = i + 1;           ans[1]--;           continue;         }         if (a[i] ==  0  && b[i] ==  1  && ans[2]) {           res[++cot] = i + 1;           ans[2]--;           continue;         }         if (a[i] ==  0  && b[i] ==  0  && ans[4]) {           res[++cot] = i + 1;           ans[4]--;           continue;         }       }       for (int i = 1; i <= cot; i++) cout << res[i] <<    ;       cout << endl;     }     return 0;   }   