//g++ 1.cpp -std=c++14 -O2 -I . #include using namespace std; #include using namespace atcoder; using ll = long long; using ld = long double; using vi = vector; using vvi = vector; using vll = vector; using vvll = vector; using vld = vector; using vvld = vector; using vst = vector; using vvst = vector; #define fi first #define se second #define pb push_back #define pq_big(T) priority_queue,less> #define pq_small(T) priority_queue,greater> #define all(a) a.begin(),a.end() #define rep(i,start,end) for(ll i=start;i<(ll)(end);i++) #define per(i,start,end) for(ll i=start;i>=(ll)(end);i--) #define uniq(a) sort(all(a));a.erase(unique(all(a)),a.end()) vi query; vector v(2e5); int n,m; int op=0; void init(){ rep(i,0,2e5){ rep(j,0,m){ v[i]+='0'; } } } void op1(int x,int i){ //cout<<"1 "<>n>>m; init(); string x; cin>>x; /* b[1e5]= 111...11 b[1e5-1] = 111...10 b[1000] = 111...11 -> 000...01 */ op2(1e5,0,0); // b[1e5]= 111...11 op1(1e5-1,1e5); // b[1e5-1] = 111...10 op2(1000,0,0); op2(1000,1000,1e5-1); // b[1000] = 000...01 rep(i,1,m){ op1(1000+i,1000+i-1); } // b[1000] = 000...01 // b[1001] = 000...10 // b[1000+M-1] = 100...00 rep(i,0,m){ op2(2000+i,2000+i,1e5); op2(2000+i,2000+i,1000+i); } // b[2000] = 111...10 // b[2001] = 111...01 // b[2000+M-1] = 011...11 string tar=""; rep(i,0,m){ if(x[i]=='0'){ tar+='1'; } else{ tar+='0'; } } // tarを作ろう rep(i,0,m){ if(tar[i]=='0'){ //cout<<"#"<