#include<bits/stdc++.h>
#define f1(i, n) for(ll i=1;i<=n;++i)
#define f0(i, n) for(ll i=0;i<n;++i)
#define ull unsigned long long
#define ll long long
#define rev(a) reverse(a.begin(),a.end())
#define all(x) x.begin(),x.end()
#define so(A, n) sort(A+1, A+n+1)
using namespace std;
const int maxn = 200010;
const int N = 2e5 + 5;
int A[N], T[N];
void solve() {
int n, k;
cin >> n >> k;
f1(i, n) {
cin >> A[i];
T[i] = T[i - 1] + A[i];
}
int cnt = 0, res = 0;
int i = 1, j = 1;
while (j <= n) {
if (cnt > k) {
while (cnt > k) {
if (A[i] == 0) {
--cnt;
}
++i;
}
}
else {
res = max(res, j - i + 1);
}
if (A[j] == 0) {
cnt++;
}
++j;
}
cout << res << endl;
for (int i = res; i <= n; ++i) {
if (res - T[i] + T[i - res] <= k) {
for (int j = 1; j <= i - res; j++) {
cout << A[j] << " ";
}
for (int j = i - res + 1; j <= i; ++j) {
cout << 1 << " ";
}
for (int j = i + 1; j <= n; ++j) {
cout << A[j] << " ";
}
return;
}
}
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmMShpLCBuKSBmb3IobGwgaT0xO2k8PW47KytpKQojZGVmaW5lIGYwKGksIG4pIGZvcihsbCBpPTA7aTxuOysraSkKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcmV2KGEpIHJldmVyc2UoYS5iZWdpbigpLGEuZW5kKCkpCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSx4LmVuZCgpCiNkZWZpbmUgc28oQSwgbikgc29ydChBKzEsIEErbisxKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgbWF4biA9IDIwMDAxMDsKY29uc3QgaW50IE4gPSAyZTUgKyA1OwppbnQgQVtOXSwgVFtOXTsKdm9pZCBzb2x2ZSgpIHsKCWludCBuLCBrOwoJY2luID4+IG4gPj4gazsKCWYxKGksIG4pIHsKCQljaW4gPj4gQVtpXTsKCQlUW2ldID0gVFtpIC0gMV0gKyBBW2ldOwoJfQoJaW50IGNudCA9IDAsIHJlcyA9IDA7CglpbnQgaSA9IDEsIGogPSAxOwoJd2hpbGUgKGogPD0gbikgewoJCWlmIChjbnQgPiBrKSB7CgkJCXdoaWxlIChjbnQgPiBrKSB7CgkJCQlpZiAoQVtpXSA9PSAwKSB7CgkJCQkJLS1jbnQ7CgkJCQl9CgkJCQkrK2k7CgkJCX0KCQl9CgkJZWxzZSB7CgkJCXJlcyA9IG1heChyZXMsIGogLSBpICsgMSk7CgkJfQoJCWlmIChBW2pdID09IDApIHsKCQkJY250Kys7CgkJfQoJCSsrajsKCX0KCWNvdXQgPDwgcmVzIDw8IGVuZGw7Cglmb3IgKGludCBpID0gcmVzOyBpIDw9IG47ICsraSkgewoJCWlmIChyZXMgLSBUW2ldICsgVFtpIC0gcmVzXSA8PSBrKSB7CgkJCWZvciAoaW50IGogPSAxOyBqIDw9IGkgLSByZXM7IGorKykgewoJCQkJY291dCA8PCBBW2pdIDw8ICIgIjsKCQkJfQoJCQlmb3IgKGludCBqID0gaSAtIHJlcyArIDE7IGogPD0gaTsgKytqKSB7CgkJCQljb3V0IDw8IDEgPDwgIiAiOwoJCQl9CgkJCWZvciAoaW50IGogPSBpICsgMTsgaiA8PSBuOyArK2opIHsKCQkJCWNvdXQgPDwgQVtqXSA8PCAiICI7CgkJCX0KCQkJcmV0dXJuOwoJCX0KCX0KfQppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoJc29sdmUoKTsKCglyZXR1cm4gMDsKfQoKCg==