#include <stdlib.h>
#include <string.h>
#include "floppy.h"
#include<bits/stdc++.h>
using namespace std;
#define fall(i,a,b) for(int i=a;i<=b;i++)
#define rfall(i,a,b) for(int i=a;i>=b;i--)
#define sz(v) (int)v.size()
#define pb push_back
//save_to_floppy(bits);
void read_array(int subtask_id, const std::vector<int> &v) {
stack<int> st;
string s;
int n=sz(v);
fall(i,0,n-1){
while(!st.empty()){
auto x=st.top();
if(x>v[i]){
s.pb('0');
break;
}
s.pb('1');
st.pop();
}
st.push(v[i]);
}
save_to_floppy(s);
}
std::vector<int> solve_queries(int subtask_id, int N,
const std::string &bits,
const std::vector<int> &a, const std::vector<int> &b) {
int n=N;
vector<int> low(n);
stack<int> st;
int p=0;
fall(i,0,n-1){
while(!st.empty()){
auto x=st.top();
if(bits[p++]=='0'){
low[i]=x;
break;
}
st.pop();
}
if(st.empty()) low[i]=-1;
st.push(i);
}
vector<int> resp(sz(a));
fall(j,0,sz(a)-1){
int ans;
fall(i,a[j],b[j]) if(low[i]<a[j]) ans=i;
resp[j]=ans;
}
return resp;
}