#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void printPattern(string str, int i){
if(i == str.size()){
cout << str << "\n";
return;
}
if(str[i] == '?'){
for(int k=0; k<=1; ++k){
str[i] = k + '0';
printPattern(str, i+1);
str[i] = '?'; //Why backtrack?
}
return;
}
printPattern(str, i+1);
}
int main()
{
string str = "1?11?00?1?";
printPattern(str, 0);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHByaW50UGF0dGVybihzdHJpbmcgc3RyLCBpbnQgaSl7CglpZihpID09IHN0ci5zaXplKCkpewoJCWNvdXQgPDwgc3RyIDw8ICJcbiI7CgkJcmV0dXJuOwoJfQoJCglpZihzdHJbaV0gPT0gJz8nKXsKCQlmb3IoaW50IGs9MDsgazw9MTsgKytrKXsKCQkJc3RyW2ldID0gayArICcwJzsKCQkJcHJpbnRQYXR0ZXJuKHN0ciwgaSsxKTsKCQkJc3RyW2ldID0gJz8nOwkJCQkvL1doeSBiYWNrdHJhY2s/CgkJfQoJCXJldHVybjsKCX0KCQoJcHJpbnRQYXR0ZXJuKHN0ciwgaSsxKTsKfQoKaW50IG1haW4oKQp7CglzdHJpbmcgc3RyID0gIjE/MTE/MDA/MT8iOwoJCglwcmludFBhdHRlcm4oc3RyLCAwKTsKfQ==