#include using namespace std; #define pb push_back const int maxi=1e6+10; int a[maxi]; vector v[maxi]; int n,k; long long s[maxi]; int zero[maxi]; multiset ms; long long ans; void read() { freopen("krasi.in","r",stdin); cin>>n>>k; for (int i=1;i<=n;i++){ scanf("%d",&a[i]); s[i]=s[i-1]+a[i]; zero[i]=zero[i-1]; if (!a[i]) zero[i]++; } fclose(stdin); } void solve() { int l=0; int r=1; ms.insert(0); while(r<=n) { while(zero[r]-zero[l]>k) { ms.erase(ms.find(s[l])); l++; } ans = max (ans, s[r]-*ms.begin()); ms.insert(s[r]); r++; } } void print() { freopen("krasi.out","w",stdout); printf("%lld\n",ans); fclose(stdout); } int main() { read(); solve(); print(); return 0; }