660_C. Hard Process_9704
You are given an array a with n elements. Each element of a is either 0 or 1.

Let's denote the length of the longest subsegment of consecutive elements in a, consisting of only numbers one, as f(a). You can change no more than k zeroes to ones to maximize f(a).

Input

The first line contains two integers n and k (1 ≤ n ≤ 3·105, 0 ≤ k ≤ n) — the number of elements in a and the parameter k.

The second line contains n integers ai (0 ≤ ai ≤ 1) — the elements of a.

Output

On the first line print a non-negative integer z — the maximal value of f(a) after no more than k changes of zeroes to ones.

On the second line print n integers aj — the elements of the array a after the changes.

If there are multiple answers, you can print any one of them.

Examples

Input

7 1
1 0 0 1 1 0 1


Output

4
1 0 0 1 1 1 1


Input

10 2
1 0 0 1 0 1 0 1 0 1


Output

5
1 0 0 1 1 1 1 1 0 1
a,b=map(int,input().split())
z=list(map(int,input().split()))

    
ans=[]
for i in range(len(z)):
    if(z[i]==0):
        ans.append(i)
freq=[]
count=1
inde=0
if(len(ans)==0):
    print(len(z))
    print(*z)
    exit()
pair=[[0,0] for i in range(len(ans))]
if(z[0]==0):
    inde=1
for i in range(1,len(z)):
    if(z[i]==z[i-1]):
        count+=1
        if(z[i]==0):
            inde+=1
    else:
        freq.append(count)
        if(z[i]==0):
            pair[inde][0]=count
            inde+=1
        count=1
freq.append(count)
if(b==0):
    
    if(z[0]==1):
        print(max(freq[0::2]))
        print(*z)
    else:
        if(len(freq)==1):
            print(0)
            print(*z)
            exit()
        print(max(freq[1::2]))
        print(*z)
    exit()
    
for i in range(1,len(ans)):
    pair[i-1][1]=ans[i]-ans[i-1]-1
pair[-1][1]=len(z)-1-ans[-1]
l=0
maxa=0
ye=0
inde=0
k=b
if(len(ans)<=k):
    print(len(z))
    ans=[1 for i in range(len(z))]
    print(*ans)
    exit()
for i in range(len(ans)-k+1):
    ye=pair[i][0]+pair[i+k-1][1]+ans[i+k-1]-ans[i]+1
    if(ye>maxa):
        maxa=ye
        inde=i
for i in range(ans[inde],len(z)):
    if(z[i]==0):
        z[i]=1
        k-=1
    if(k==0):
        break;
print(maxa)
print(*z)
    
    
    
    
    


7 1
1 0 0 1 1 0 1
 10 2
1 0 0 1 0 1 0 1 0 1
 7 3
1 0 0 0 0 1 0
 1 0
0
 3 0
1 1 1
 3 1
0 0 0
 1 0
1
 3 0
0 0 0
 1 1
0
 3 1
0 0 1
 2 0
0 0
 7 3
1 1 1 1 1 1 1
 7 0
0 1 0 0 0 1 0
 7 7
1 0 1 0 0 0 0
 1 1
1
 2 1
0 0
 2 2
1 0
 7 2
1 0 1 1 0 0 0
 2 0
0 1
 10 3
0 0 1 0 0 1 0 0 1 1
 7 3
1 0 0 1 0 1 0
 3 2
0 0 0
 3 0
1 0 0
 3 2
0 0 1
 7 1
0 1 0 0 0 1 0
 7 2
1 0 1 0 0 0 0
 2 2
0 0
 10 3
0 0 0 0 0 1 0 0 1 1
 7 1
0 1 1 0 0 1 0
 7 1
0 1 1 0 0 0 0
 7 3
0 0 0 0 0 1 0
 7 6
1 1 1 1 1 1 1
 10 5
0 0 1 0 0 1 0 0 1 1
 7 0
1 0 0 1 1 0 1
 7 1
0 1 0 0 1 1 0
 7 1
0 1 1 0 0 1 1
 7 0
0 1 1 0 0 0 0
 7 3
0 0 1 0 0 1 0
 7 1
1 0 0 0 0 0 0
 10 5
0 0 1 0 0 0 0 0 1 1
 7 0
1 0 1 1 1 0 1
 7 0
0 1 1 0 1 1 0
 7 0
0 1 0 1 0 1 0
 2 0
1 0
 7 0
1 0 1 1 0 0 0
 10 2
1 1 0 1 0 1 0 1 0 1
 10 3
0 0 0 1 0 1 0 0 1 1
 3 0
0 1 0
 7 1
0 1 1 1 0 1 1
 10 5
0 0 1 0 0 1 1 0 1 1
 7 0
0 0 0 1 1 0 1
 7 0
0 1 1 0 0 1 1
 7 0
0 0 1 0 0 0 0
 7 2
0 0 1 0 0 1 1
 7 3
1 0 0 0 0 0 1
 7 0
1 0 1 1 1 0 0
 7 1
0 0 0 0 0 0 0
 10 3
0 0 0 1 0 0 0 0 1 1
 7 0
0 0 1 0 0 1 1
 7 0
1 1 0 1 0 0 0
 7 0
1 0 1 1 1 1 0
 7 0
0 0 0 0 0 0 0
 7 2
0 0 0 0 0 0 1
 7 0
1 1 0 1 0 1 0
 3 0
0 0 1
 3 2
0 1 0
 3 1
1 0 0
 2 2
0 1
 3 2
1 1 0
 3 2
1 0 0
 3 1
1 1 0
 7 1
1 1 1 0 0 0 0
 7 7
1 0 0 0 0 0 0
 7 2
1 0 0 1 0 0 0
 2 2
1 1
 3 1
0 1 0
 7 0
1 1 1 0 0 0 0
 7 3
1 0 1 1 0 0 0
 7 1
0 1 1 0 1 1 0
 7 2
0 0 1 0 0 1 0
 7 3
1 0 0 0 0 0 0
 7 3
1 1 0 1 1 1 1
 7 7
1 0 1 0 0 0 1
 2 1
1 0
 10 3
0 0 1 0 0 1 1 0 1 1
 7 1
0 1 0 0 0 0 0
 7 3
0 1 0 0 0 1 0
 7 6
0 1 1 1 1 1 1
 7 2
1 0 0 0 0 0 0
 7 0
1 1 0 0 0 0 0
 7 3
0 0 1 1 0 1 0
 2 0
1 1
 7 1
0 1 1 1 1 1 1
 7 2
0 0 0 0 0 0 0
 7 2
0 0 1 1 0 1 0
 10 5
0 0 0 1 0 0 0 0 1 1
 7 0
1 1 1 1 1 1 0
 7 0
0 1 1 1 1 1 0

4
1 0 0 1 1 1 1  5
1 0 0 1 1 1 1 1 0 1  4
1 1 1 1 0 1 0  0
0  3
1 1 1  1
1 0 0  1
1  0
0 0 0  1
1  2
0 1 1  0
0 0  7
1 1 1 1 1 1 1  1
0 1 0 0 0 1 0  7
1 1 1 1 1 1 1  1
1  1
1 0  2
1 1  5
1 1 1 1 1 0 0  1
0 1  6
0 0 1 0 1 1 1 1 1 1  6
1 1 1 1 1 1 0  2
1 1 0  1
1 0 0  3
1 1 1  2
1 1 0 0 0 1 0  4
1 1 1 1 0 0 0  2
1 1  6
0 0 0 0 1 1 1 1 1 1  3
1 1 1 0 0 1 0  3
1 1 1 0 0 0 0  4
0 0 1 1 1 1 0  7
1 1 1 1 1 1 1  9
0 1 1 1 1 1 1 1 1 1  2
1 0 0 1 1 0 1  3
0 1 0 1 1 1 0  3
1 1 1 0 0 1 1  2
0 1 1 0 0 0 0  5
0 1 1 1 1 1 0  2
1 1 0 0 0 0 0  8
0 0 1 1 1 1 1 1 1 1  3
1 0 1 1 1 0 1  2
0 1 1 0 1 1 0  1
0 1 0 1 0 1 0  1
1 0  2
1 0 1 1 0 0 0  6
1 1 1 1 1 1 0 1 0 1  7
0 0 0 1 1 1 1 1 1 1  1
0 1 0  6
0 1 1 1 1 1 1  10
1 1 1 1 1 1 1 1 1 1  2
0 0 0 1 1 0 1  2
0 1 1 0 0 1 1  1
0 0 1 0 0 0 0  5
0 0 1 1 1 1 1  4
1 1 1 1 0 0 1  3
1 0 1 1 1 0 0  1
1 0 0 0 0 0 0  5
0 0 0 1 0 1 1 1 1 1  2
0 0 1 0 0 1 1  2
1 1 0 1 0 0 0  4
1 0 1 1 1 1 0  0
0 0 0 0 0 0 0  3
0 0 0 0 1 1 1  2
1 1 0 1 0 1 0  1
0 0 1  3
1 1 1  2
1 1 0  2
1 1  3
1 1 1  3
1 1 1  3
1 1 1  4
1 1 1 1 0 0 0  7
1 1 1 1 1 1 1  4
1 1 1 1 0 0 0  2
1 1  2
1 1 0  3
1 1 1 0 0 0 0  6
1 1 1 1 1 1 0  5
0 1 1 1 1 1 0  4
0 0 1 1 1 1 0  4
1 1 1 1 0 0 0  7
1 1 1 1 1 1 1  7
1 1 1 1 1 1 1  2
1 1  8
0 0 1 1 1 1 1 1 1 1  2
1 1 0 0 0 0 0  5
0 1 1 1 1 1 0  7
1 1 1 1 1 1 1  3
1 1 1 0 0 0 0  2
1 1 0 0 0 0 0  6
1 1 1 1 1 1 0  2
1 1  7
1 1 1 1 1 1 1  2
1 1 0 0 0 0 0  5
0 1 1 1 1 1 0  8
0 0 1 1 1 1 1 1 1 1  6
1 1 1 1 1 1 0  5
0 1 1 1 1 1 0 