#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define BET(a,b,c) ((a)<=(b)&&(b)<(c)) #define FOR(i,n) for(int i=0,i##_end=(int(n));i VI; typedef vector VVI; template struct BIT { vector data; BIT(int size) :data(size + 1){} T sum(T a, T b){ // [a..b] if (a == 0){ T val = 0; for (; b >= 0; b = (b&(b + 1)) - 1) val += data[b]; return val; } else{ return sum(0, b) - sum(0, a - 1); } } void add(int k, T val) { for (; k < (int)data.size(); k |= k + 1) { data[k] += val; } } }; int main() { int N,K; cin>>N>>K; int maxSize = 1000000+10; BIT bit(maxSize + 1); FOR(i,N){ int w; scanf("%d",&w); if(w > 0){ if(bit.sum(w, maxSize) < K) { bit.add(w, 1); } }else { if(bit.sum(-w, -w) > 0){ bit.add(-w, -1); } } } cout<