#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; class BinaryIndexTree { public: vector bit; int N; BinaryIndexTree(int n) { N = n; for (int i = 0; i <= N; ++i) { bit.push_back(0); } } ll sum(int i) { ll ret = 0; while (i > 0) { ret += bit[i]; i -= i & -i; } return ret; } void add(int i, ll x) { while (i <= N) { bit[i] += x; i += i & -i; } } }; int main() { int N, K; cin >> N >> K; int L = 1000000; BinaryIndexTree bit(1000010); map counter; int w; for (int i = 0; i < N; ++i) { cin >> w; if (w >= 0) { int sum = bit.sum(L) - bit.sum(w - 1); if (sum >= K) continue; counter[w]++; bit.add(w, 1); } else { if (counter[abs(w)] == 0) continue; counter[abs(w)]--; bit.add(abs(w), -1); } } cout << bit.sum(L) << endl; return 0; }