Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

The problem statement has recently been changed. View the changes.

×
B. Cormen — The Best Friend Of a Man

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputRecently a dog was bought for Polycarp. The dog's name is Cormen. Now Polycarp has a lot of troubles. For example, Cormen likes going for a walk.

Empirically Polycarp learned that the dog needs at least *k* walks for any two consecutive days in order to feel good. For example, if *k* = 5 and yesterday Polycarp went for a walk with Cormen 2 times, today he has to go for a walk at least 3 times.

Polycarp analysed all his affairs over the next *n* days and made a sequence of *n* integers *a*_{1}, *a*_{2}, ..., *a*_{n}, where *a*_{i} is the number of times Polycarp will walk with the dog on the *i*-th day while doing all his affairs (for example, he has to go to a shop, throw out the trash, etc.).

Help Polycarp determine the minimum number of walks he needs to do additionaly in the next *n* days so that Cormen will feel good during all the *n* days. You can assume that on the day before the first day and on the day after the *n*-th day Polycarp will go for a walk with Cormen exactly *k* times.

Write a program that will find the minumum number of additional walks and the appropriate schedule — the sequence of integers *b*_{1}, *b*_{2}, ..., *b*_{n} (*b*_{i} ≥ *a*_{i}), where *b*_{i} means the total number of walks with the dog on the *i*-th day.

Input

The first line contains two integers *n* and *k* (1 ≤ *n*, *k* ≤ 500) — the number of days and the minimum number of walks with Cormen for any two consecutive days.

The second line contains integers *a*_{1}, *a*_{2}, ..., *a*_{n} (0 ≤ *a*_{i} ≤ 500) — the number of walks with Cormen on the *i*-th day which Polycarp has already planned.

Output

In the first line print the smallest number of additional walks that Polycarp should do during the next *n* days so that Cormen will feel good during all days.

In the second line print *n* integers *b*_{1}, *b*_{2}, ..., *b*_{n}, where *b*_{i} — the total number of walks on the *i*-th day according to the found solutions (*a*_{i} ≤ *b*_{i} for all *i* from 1 to *n*). If there are multiple solutions, print any of them.

Examples

Input

3 5

2 0 1

Output

4

2 3 2

Input

3 1

0 0 0

Output

1

0 1 0

Input

4 6

2 4 3 5

Output

0

2 4 3 5

Codeforces (c) Copyright 2010-2021 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Jan/16/2021 08:12:41 (g2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|