#include using namespace std; using Int32 = int_fast32_t; using Word32 = uint_fast32_t; using Int64 = int_fast64_t; using Word64 = uint_fast64_t; using Int128 = __int128_t; using Word128 = __uint128_t; using Int = int_fast64_t; using Word = uint_fast64_t; using VInt = vector; using VVI = vector; using VWord = vector; using VVW = vector; using VS = vector; using VVS = vector; using VB = vector; using VVB = vector; using PII = pair; using PWW = pair; using VPII = vector; using VPWW = vector; #define SZ(x) ((Int)(x).size()) #define UNIQUE(v) v.erase(unique(v.begin(), v.end()), v.end()) #define rep(i,n) for(Int i=0, i##_len=(n); i 0; i -= i & -i) res += dat[i]; return res; } }; int main() { ios_base::sync_with_stdio(0); cin.tie(0); Int N, K; cin >> N >> K; VInt w(N); rep(i,N) cin >> w[i]; BIT *bit = new BIT(1000001); rep(i,N) { if (w[i] > 0) { if (bit->sum(1000000) - bit->sum(w[i] - 1) >= K) continue; bit->add(w[i], 1); } else { if (bit->sum(-w[i]) - bit->sum(-w[i] - 1) > 0) bit->add(-w[i], -1); } } cout << bit->sum(1000000) << '\n'; delete(bit); return 0; }