//UVA 465.cpp
#include<bits/stdc++.h>
#define readf freopen("in" , "r" , stdin);
#define writef freopen("out" , "w" , stdout);
#define gcu() getchar_unlocked()
typedef long long ll ;
typedef unsigned long long ull ;
const ll INFLL = 4e18;
const int INFINT = 2e9;
using namespace std;
int dx[]={-1, 0, 1, 0,-1, 1, 1,-1};
int dy[]={ 0, 1, 0,-1, 1, 1,-1,-1};
int SIZE = 1e5;
/*--------------------------------------------------*/
int n, k;
vector<int>a, cumSum;
/*-----------------MAIN FUNCTION--------------------*/
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
#ifndef ONLINE_JUDGE
readf
//writef//
#endif
int num;
cin >> n >> k;
cumSum.push_back(0);
for(int i = 0 ; i < n ; i++)
{
cin >> num;
a.push_back(num);
cumSum.push_back(cumSum[i] + a[i]);
}
int f = 0 , l = 0, e = 0, s = 0;
while(e < cumSum.size())
{
int cmp = e - s - (cumSum[e] - cumSum[s]);
while(cmp <= k)
{
if(e - s > l - f && cmp <= k)f = s, l = e;
e++;
cmp = e - s - (cumSum[e] - cumSum[s]);;
}
if(cmp < k)e++;
else s++;
}
cout << l-- - f << endl;
while(f<=l)a[f++] = 1;
int i = 0, len = a.size();
while(i < len)cout << a[i++] << " ";
//------------------------------------------------------------------------
}
Ly9VVkEgNDY1LmNwcAojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIHJlYWRmIGZyZW9wZW4oImluIiAsICJyIiAsIHN0ZGluKTsKI2RlZmluZSB3cml0ZWYgZnJlb3Blbigib3V0IiAsICJ3IiAsIHN0ZG91dCk7CiNkZWZpbmUgZ2N1KCkgZ2V0Y2hhcl91bmxvY2tlZCgpCnR5cGVkZWYgbG9uZyBsb25nIGxsIDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsIDsKY29uc3QgbGwgSU5GTEwgPSA0ZTE4Owpjb25zdCBpbnQgSU5GSU5UID0gMmU5Owp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgZHhbXT17LTEsIDAsIDEsIDAsLTEsIDEsIDEsLTF9OwppbnQgZHlbXT17IDAsIDEsIDAsLTEsIDEsIDEsLTEsLTF9OwppbnQgU0laRSA9IDFlNTsKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmludCBuLCBrOwp2ZWN0b3I8aW50PmEsIGN1bVN1bTsKLyotLS0tLS0tLS0tLS0tLS0tLU1BSU4gRlVOQ1RJT04tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmludCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKE5VTEwpOwoJI2lmbmRlZiBPTkxJTkVfSlVER0UKCXJlYWRmCgkvL3dyaXRlZi8vCgkjZW5kaWYKCWludCBudW07CgljaW4gPj4gbiA+PiBrOwoJY3VtU3VtLnB1c2hfYmFjaygwKTsKCWZvcihpbnQgaSA9IDAgOyBpIDwgbiA7IGkrKykKCXsKCQljaW4gPj4gbnVtOwoJCWEucHVzaF9iYWNrKG51bSk7CgkJY3VtU3VtLnB1c2hfYmFjayhjdW1TdW1baV0gKyBhW2ldKTsKCX0KCWludCBmID0gMCAsIGwgPSAwLCBlID0gMCwgcyA9IDA7Cgl3aGlsZShlIDwgY3VtU3VtLnNpemUoKSkKCXsKCQlpbnQgY21wID0gZSAtIHMgLSAoY3VtU3VtW2VdIC0gY3VtU3VtW3NdKTsKCQl3aGlsZShjbXAgPD0gaykKCQl7CgkJCWlmKGUgLSBzID4gbCAtIGYgJiYgY21wIDw9IGspZiA9IHMsIGwgPSBlOwoJCQllKys7CgkJCWNtcCA9IGUgLSBzIC0gKGN1bVN1bVtlXSAtIGN1bVN1bVtzXSk7OwoJCX0KCQlpZihjbXAgPCBrKWUrKzsKCQllbHNlIHMrKzsKCX0KCWNvdXQgPDwgbC0tIC0gZiA8PCBlbmRsOwoJd2hpbGUoZjw9bClhW2YrK10gPSAxOwoJaW50IGkgPSAwLCBsZW4gPSBhLnNpemUoKTsKCXdoaWxlKGkgPCBsZW4pY291dCA8PCBhW2krK10gPDwgIiAiOwoJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KfQo=