var_n,var_k=map(int,input().split())
urra =list(map(int,input().split()))
ans=0
for i in range(1,var_n):
extra=max(0,var_k-urra[i]-urra[i-1])
urra[i]+=extra
ans+=extra
print(ans)
print(*urra)
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k;
cin>>n>>k;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
int ans=0;
for(int i=1;i<n;i++){
if(a[i-1]+a[i]<k){
ans+=k-a[i]-a[i-1];
a[i]+=k-a[i]-a[i-1];
}
}
cout<<ans<<endl;
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
}
12A - Super Agent | 1709A - Three Doors |
1680C - Binary String | 1684B - Z mod X = C |
1003A - Polycarp's Pockets | 1691B - Shoe Shuffling |
1706A - Another String Minimization Problem | 1695B - Circle Game |
1702B - Polycarp Writes a String from Memory | 1701A - Grass Field |
489C - Given Length and Sum of Digits | 886B - Vlad and Cafes |
915A - Garden | 356A - Knight Tournament |
1330A - Dreamoon and Ranking Collection | 1692B - All Distinct |
1156C - Match Points | 1675A - Food for Animals |
1328C - Ternary XOR | 1689A - Lex String |
1708B - Difference of GCDs | 863A - Quasi-palindrome |
1478A - Nezzar and Colorful Balls | 1581B - Diameter of Graph |
404A - Valera and X | 908A - New Year and Counting Cards |
146A - Lucky Ticket | 1594C - Make Them Equal |
1676A - Lucky | 1700B - Palindromic Numbers |