#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("inline")
#include<bits/stdc++.h>
using namespace std;
struct Rand{
unsigned x;
unsigned y;
unsigned z;
unsigned w;
Rand(void){
x=123456789;
y=362436069;
z=521288629;
w=(unsigned)time(NULL);
}
Rand(unsigned seed){
x=123456789;
y=362436069;
z=521288629;
w=seed;
}
inline unsigned get(void){
unsigned t;
t = (x^(x<<11));
x=y;
y=z;
z=w;
w = (w^(w>>19))^(t^(t>>8));
return w;
}
inline double getUni(void){
return get()/4294967296.0;
}
inline int get(int a){
return (int)(a*getUni());
}
inline int get(int a, int b){
return a+(int)((b-a+1)*getUni());
}
inline long long get(long long a){
return(long long)(a*getUni());
}
inline long long get(long long a, long long b){
return a+(long long)((b-a+1)*getUni());
}
inline double get(double a, double b){
return a+(b-a)*getUni();
}
inline int getExp(int a){
return(int)(exp(getUni()*log(a+1.0))-1.0);
}
inline int getExp(int a, int b){
return a+(int)(exp(getUni()*log((b-a+1)+1.0))-1.0);
}
}
;
#define main dummy_main
int main(){
return 0;
}
#undef main
Rand rnd;
class Solution{
public:
string findDifferentBinaryString(vector<string>& A){
int N = A.size();
string str;
for(;;){
int i;
str = "";
for(i=(0);i<(N);i++){
str += (char)('0' + rnd.get(2));
}
for(i=(0);i<(N);i++){
if(str == A[i]){
goto Lj4PdHRW;
}
}
break;
Lj4PdHRW:;
}
return str;
}
}
;
// cLay version 20210926-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// Rand rnd;
//
// class Solution {
// public:
// string findDifferentBinaryString(vector<string>& A) {
// int N = A.size();
// string str;
// for(;;){
// str = "";
// rep(i,N) str += (char)('0' + rnd.get(2));
// rep(i,N) if(str == A[i]) break_continue;
// break;
// }
// return str;
// }
// };