#include using namespace std; struct Fenwick_tree{ private: uint_fast32_t siz=1; uint_fast32_t d=1; vector dat; public: Fenwick_tree(int_fast32_t N) : dat(N,0){ siz=N; d=bit_floor(siz-1); } void add(int_fast32_t k,int_fast32_t x){ for(int_fast32_t i=k;i0;h/=2){ if(ans+h<=siz){ if(res+dat[ans+h-1]<=x){ res+=dat[ans+h-1]; ans+=h; } } } return ans; } }; signed main(){ int_fast32_t N,Q; scanf("%" SCNdFAST32 "%" SCNdFAST32,&N,&Q); vector A(N); for(int_fast32_t i=0;i data=A; vector> query(Q); for(int_fast32_t i=0;i data2=data; sort(data2.begin(),data2.end()); data2.erase(unique(data2.begin(),data2.end()),data2.end()); for(int_fast64_t &i : data){ i=lower_bound(data2.begin(),data2.end(),i)-data2.begin(); } vector relation(*max_element(data.begin(),data.end())+1); for(int_fast32_t i=0;i change; vector change2(N,false); Fenwick_tree tree(relation.size()); for(int_fast32_t i=0;i